我正在使用grunt-contrib-jasmine测试我的AMD模块。试题似乎是相互影响的。
输出不按文件分隔测试。这可以通过在测试beforeEach中记录某些内容来验证。在所有测试中,对所有测试文件执行相同的回调。
如何使测试彼此分离,即由测试规范文件分隔?是增加另一层嵌套的唯一解决方案吗?
grunt配置
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);
});
});发布于 2016-10-05 12:43:37
问题是,在beforeEach之外有一个afterEach和一个describe。这意味着它们将在grunt-contrib-jasmine发现的每个测试之前和之后调用。
如果希望只将它们用于define-ed模块中的-ed,则需要将它们放在describe中。
define(['Squire', 'sinon'], function(Squire, sinon){
'use strict';
describe('some description', function(){
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);
});
});
});https://stackoverflow.com/questions/39829395
复制相似问题