AMDモジュールをテストするのにgrunt-contrib-jasmine
を使用しています。箱の外では、テストがお互いに影響を与えているようです。前と後で別のテストに漏れます
出力はファイルごとにテストを区切りません。これは、テストに何かを記録することによって確認できますbeforeEach
。すべてのテストで、すべてのテストファイルに対して同じコールバックが実行されます。
どのようにしてテストを互いに分離し、テスト仕様ファイルで分離することができますか?別のレベルの入れ子を追加する唯一のソリューションですか?
面倒な設定
options: {
specs: 'test/specs/unit/**/*spec.js',
keepRunner: true,
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
requireConfig: requireConfig
}
}
sample1.spec.js:
define(['Squire', 'sinon'], function(Squire, sinon){
'use strict';
var sut,
injector,
fakeServer;
beforeEach(function(done){
fakeServer = sinon.fakeServer.create();
console.log('create fake server'); // this is logged for all test files
injector = new Squire();
injector.require(['core/http-service'], function(httpService) {
sut = httpService;
done();
});
});
afterEach(function(){
fakeServer.restore();
injector.remove();
});
it('', function(){
expect(1).toBe(1);
});
});
あなたがしている例から離れて、それ以上のテストを入れ子にしていますここに表示されますか? –
1-2レベルの 'describe()'を持つ 'x.spec.js'テストファイルがいくつかあります。このプラグインが動作するためには、同じ仕様のテストを本当に行う必要がありますか? – Johan
入れ子になった 'describe'を含むdescribeで' beforeEach'または 'afterEach'を使用していて、内側の' describe'にしか影響しないことを期待しているのでしょうか?明白かもしれないが、それはチェックの価値がある。 –