タグ付けされた質問 「jasmine」

Jasmineは、JavaScriptコードをテストするための動作駆動型開発(BDD)フレームワークです。Jasmineには外部依存関係はなく、DOMは必要ありません。

8
ジャスミンでエラーがスローされることを期待するテストを書く方法は?
エラーが予想されるJasmine Test Frameworkのテストを記述しようとしています。現時点では、GitHubのJasmine Node.js統合を使用しています。 私のノードモジュールには、次のコードがあります。 throw new Error("Parsing is not possible"); 今、私はこのエラーを期待するテストを書こうとします: describe('my suite...', function() { [..] it('should not parse foo', function() { [..] expect(parser.parse(raw)).toThrow(new Error("Parsing is not possible")); }); }); 私もError()いくつかの他のバリアントを試しましたが、それを機能させる方法を理解できませんでした。

8
Jasmine JavaScriptテスト-toBeとtoEqual
私が以下を持っているとしましょう: var myNumber = 5; expect(myNumber).toBe(5); expect(myNumber).toEqual(5); 上記の両方のテストに合格します。数値の評価に関してtoBe()との違いはありtoEqual()ますか?もしそうなら、私はどちらを使うべきですか?

15
Angular 2 Unit Tests:名前「describe」が見つかりません
私はangular.ioからこのチュートリアルに従っています 彼らが言ったように、ユニットテストを作成するためにhero.spec.tsファイルを作成しました: import { Hero } from './hero'; describe('Hero', () => { it('has name', () => { let hero: Hero = {id: 1, name: 'Super Cat'}; expect(hero.name).toEqual('Super Cat'); }); it('has id', () => { let hero: Hero = {id: 1, name: 'Super Cat'}; expect(hero.id).toEqual(1); }); }); 単体テストは魅力のように機能します。問題は、チュートリアルで言及されているいくつかのエラーが表示されることです。 私たちのエディタとコンパイラのは、彼らが何を知っていないと文句を言うことit とexpect、彼らはジャスミンを記述タイピングファイルを欠いているためです。それらは無害なので、今のところそれらの迷惑な苦情は無視できます。 そして彼らは実際にそれを無視した。これらのエラーは無害ですが、大量のエラーを受け取った場合、出力コンソールでは見栄えがよくありません。 …

4
Jasmine.js配列の比較
jasmine.jsに、2つの配列が等しいかどうかを確認する方法はありますか。次に例を示します。 arr = [1, 2, 3] expect(arr).toBe([1, 2, 3]) expect(arr).toEqual([1, 2, 3]) どちらも動作しないようです。

12
JasmineでプライベートメソッドのAngular / TypeScriptのユニットテストを書く方法
angular 2でプライベート関数をどのようにテストしますか? class FooBar { private _status: number; constructor( private foo : Bar ) { this.initFooBar(); } private initFooBar(){ this.foo.bar( "data" ); this._status = this.fooo.foo(); } public get status(){ return this._status; } } 私が見つけた解決策 テストコード自体をクロージャー内に配置するか、クロージャー内にコードを追加して、外部スコープ内の既存のオブジェクトのローカル変数への参照を格納します。 後でツールを使用してテストコードを取り除きます。 http://philipwalton.com/articles/how-to-unit-test-private-functions-in-javascript/ あなたが何かをしたなら、この問題を解決するより良い方法を私に提案してください? PS このような同様のタイプの質問に対する答えのほとんどは問題の解決策を与えません、それが私がこの質問をしている理由です 開発者のほとんどは、プライベート関数をテストしないと言いますが、それらが間違っている、または正しいとは言いませんが、私のケースではプライベート関数をテストする必要があります。

7
node.jsモジュールの内部(非エクスポート)関数にアクセスしてテストする方法は?
nodejsの内部(つまりエクスポートされていない)関数をテストする方法を理解しようとしています(できればモカまたはジャスミンを使用)。そして、私にはわからない! そのようなモジュールがあるとしましょう: function exported(i) { return notExported(i) + 1; } function notExported(i) { return i*2; } exports.exported = exported; そして、次のテスト(モカ): var assert = require('assert'), test = require('../modules/core/test'); describe('test', function(){ describe('#exported(i)', function(){ it('should return (i*2)+1 for any given i', function(){ assert.equal(3, test.exported(1)); assert.equal(5, test.exported(2)); }); }); }); notExported関数を公開することを意図していないため、実際にエクスポートせずに関数を単体テストする方法はありますか?

4
toBe(true)vs toBeTruthy()vs toBeTrue()
どのような違いがあるexpect(something).toBe(true)、expect(something).toBeTruthy()とexpect(something).toBeTrue()? 注toBeTrue()あるカスタムマッチャで導入されたjasmine-matchersような他の有用かつ便利なマッチャーの間toHaveMethod()またはtoBeArrayOfStrings()。 この質問は一般的なものですが、実際の例として、要素がに表示されることをテストしていますprotractor。この場合、どのマッチャーを使用すればよいですか? expect(elm.isDisplayed()).toBe(true); expect(elm.isDisplayed()).toBeTruthy(); expect(elm.isDisplayed()).toBeTrue();


6
オブジェクトなしで関数をスパイするためのジャスミンの使用
私はJasmineを初めて使用し、使用を開始しました。どのオブジェクトにも関連付けられていない(つまり、グローバルな)関数がたくさんあるライブラリjsファイルがあります。これらの機能をスパイするにはどうすればよいですか? オブジェクトとしてwindow / documentを使用してみましたが、関数が呼び出されてもスパイが機能しませんでした。また、次のように偽のオブジェクトでラップしてみました。 var fakeElement = {}; fakeElement.fakeMethod = myFunctionName; spyOn(fakeElement, "fakeMethod"); とテストする expect(fakeElement.fakeMethod).toHaveBeenCalled(); スパイが機能しなかったため、これも機能しません

8
AngularJS Jasmine単体テストでpromiseを返すサービスをモックするにはどうすればよいですか?
私はmyServiceそれを使用myOtherServiceして、リモート呼び出しを行い、promiseを返します。 angular.module('app.myService', ['app.myOtherService']) .factory('myService', [ myOtherService, function(myOtherService) { function makeRemoteCall() { return myOtherService.makeRemoteCallReturningPromise(); } return { makeRemoteCall: makeRemoteCall }; } ]) ユニットテストを作成するには、そのメソッドがpromiseを返すようmyServiceにモックする必要があります。これが私のやり方です:myOtherServicemakeRemoteCallReturningPromise describe('Testing remote call returning promise', function() { var myService; var myOtherServiceMock = {}; beforeEach(module('app.myService')); // I have to inject mock when calling module(), // and module() should come …

3
引数に基づいてジャスミンのスパイを変更する方法はありますか?
異なるパラメーターを使用して、外部APIメソッドを2回呼び出すテストしたい関数があります。この外部APIをJasmineスパイでモックアウトし、パラメーターに基づいてさまざまなものを返したいのですが。ジャスミンでこれを行う方法はありますか?私が思いつくことができる最高のものはandCallFakeを使ったハックです: var functionToTest = function() { var userName = externalApi.get('abc'); var userId = externalApi.get('123'); }; describe('my fn', function() { it('gets user name and ID', function() { spyOn(externalApi, 'get').andCallFake(function(myParam) { if (myParam == 'abc') { return 'Jane'; } else if (myParam == '123') { return 98765; } }); }); });

9
angular-cliで1つのテスト仕様のみを実行する方法
Angular-CLI(ベータ20)でビルドされたAngular2プロジェクトがあります。 選択した1つのスペックファイルのみに対してテストを実行する方法はありますか? 以前はAngular2クイックスタートに基づくプロジェクトを使用しており、jasmineファイルに手動でスペックを追加できました。しかし、カルマテスト以外でこれを設定する方法や、Angular-CLIビルドでカルマテストを特定のファイルに制限する方法がわかりません。

17
jasmine:非同期コールバックは、jasmine.DEFAULT_TIMEOUT_INTERVALで指定されたタイムアウト時間内に呼び出されませんでした
私はという角度のサービスを持っていますrequestNotificationChannel: app.factory("requestNotificationChannel", function($rootScope) { var _DELETE_MESSAGE_ = "_DELETE_MESSAGE_"; function deleteMessage(id, index) { $rootScope.$broadcast(_DELETE_MESSAGE_, { id: id, index: index }); }; return { deleteMessage: deleteMessage }; }); 私はジャスミンを使用してこのサービスを単体テストしようとしています: "use strict"; describe("Request Notification Channel", function() { var requestNotificationChannel, rootScope, scope; beforeEach(function(_requestNotificationChannel_) { module("messageAppModule"); inject(function($injector, _requestNotificationChannel_) { rootScope = $injector.get("$rootScope"); scope = rootScope.$new(); …

9
単一のテストファイルの実行
ng testテストスイート全体ではなく単一のファイルに対して実行する方法はありますか?理想的には、ファイルを編集しているときにできるだけ早くフィードバックループを取得したいのですkarmaが、保存ごとにスイート全体を実行します。これは、十分に大きなテストスイートを構築すると少し遅くなります。 これは、angular-cliで1つのテスト仕様のみを実行する方法とは異なります。その質問は、個々の仕様の実行に関するものです。これは、個々のファイルを実行することです。ソリューションには同じJasmine仕様機能が含まれていますが、質問の性質は少し異なります。

6
WebStormにJasmineメソッドを認識させるにはどうすればよいですか?
私が持っているNode.jsのいくつか含まれているプロジェクトジャスミンの仕様を。仕様はspec /サブディレクトリにあり、jasmine-nodeで必要な.spec.coffee拡張子が付いています。 WebStorm IDEでスペックファイルの1つを開くbeforeEachとdescribe、およびへのすべての呼び出しにit、ツールチップが付いた青い波線の下線が表示されます:「未解決の関数またはメソッドit()」。したがって、私は3.0 EAPを使用していて、ある程度のJasmineサポートがあるはずですが、これがJasmine仕様ファイルであるという事実を自動的に認識しません。 [ファイル]> [設定]> [JavaScriptライブラリ]に移動し、ライブラリとしてJasmineを追加(jasmine-2.0.0.rc1.jsへのパスを指定)してから、[使用範囲]サブページに移動して、[Jasmine]を確認しました[プロジェクト]の横にあるドロップダウンリストですが、効果はありませんでした-ジャスミンメソッドは未解決として表示されます。 specサブディレクトリ内のすべてのファイル、または.spec.coffee拡張子が付いたすべてのファイルがJasmineテストであり、それらのテストが使用しているJasmine APIを認識させるには、どうすればWebStormに通知できますか?
135 jasmine  webstorm 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.