Javascript 每次泄漏到其他测试之前和之后
我正在使用grunt contrib jasmine来测试我的AMD模块。开箱即用的测试似乎相互影响 输出不按文件分隔测试。这可以通过在每次测试之前在测试Javascript 每次泄漏到其他测试之前和之后,javascript,jasmine,grunt-contrib-jasmine,Javascript,Jasmine,Grunt Contrib Jasmine,我正在使用grunt contrib jasmine来测试我的AMD模块。开箱即用的测试似乎相互影响 输出不按文件分隔测试。这可以通过在每次测试之前在测试中记录一些内容来验证。在所有测试中,对所有测试文件执行相同的回调 如何使测试彼此隔离,即由测试规范文件分隔?是添加另一层嵌套的唯一解决方案吗 咕噜声配置 options: { specs: 'test/specs/unit/**/*spec.js', keepRunner: true, template: require
中记录一些内容来验证。在所有测试中,对所有测试文件执行相同的回调
如何使测试彼此隔离,即由测试规范文件分隔?是添加另一层嵌套的唯一解决方案吗
咕噜声配置
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);
});
});
问题是在描述
之外,在每个
之前都有一个,在每个
之后都有一个。这意味着它们将在grunt contrib jasmine
找到的每个测试之前和之后被调用
如果希望它们仅用于define
-ed模块中的it
,则需要将它们放在description
中:
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);
});
});
});
除了这里展示的示例之外,您还嵌套了其他测试吗?有几个x.spec.js
测试文件具有1-2个级别的descripe()
。我真的需要让我的所有测试都在同一个规范中才能让这个插件工作吗?也许你在一个包含嵌套的descripe
的descripe中使用了beforeach
或afterEach
,希望它们只影响内部descripe
?可能很明显,但值得一看。我的最后一个想法是,问题一定是来自模板,因为其他一切看起来都很好,在检查了grunt contrib jasmine
@FaustoNA的文档后,我无法找出其他任何东西。是的,可能是因为模板“扁平”。我会挖得更深。谢谢,就像我当时想的那样。我只是好奇,有没有一种方法可以告诉插件按名称将它们分开,而不需要嵌套。谢谢你的核实。顺便说一句,你在接下来的23个小时内无法获得赏金:)