首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >之前-和afterEach泄漏到其他测试。

之前-和afterEach泄漏到其他测试。
EN

Stack Overflow用户
提问于 2016-10-03 10:22:41
回答 1查看 138关注 0票数 3

我正在使用grunt-contrib-jasmine测试我的AMD模块。试题似乎是相互影响的。

输出不按文件分隔测试。这可以通过在测试beforeEach中记录某些内容来验证。在所有测试中,对所有测试文件执行相同的回调。

如何使测试彼此分离,即由测试规范文件分隔?是增加另一层嵌套的唯一解决方案吗?

grunt配置

代码语言:javascript
复制
options: {
    specs: 'test/specs/unit/**/*spec.js',
    keepRunner: true,
    template: require('grunt-template-jasmine-requirejs'),
    templateOptions: {
        requireConfig: requireConfig
    }
}

sample1.spec.js:

代码语言:javascript
复制
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);
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-05 12:43:37

问题是,在beforeEach之外有一个afterEach和一个describe。这意味着它们将在grunt-contrib-jasmine发现的每个测试之前和之后调用。

如果希望只将它们用于define-ed模块中的-ed,则需要将它们放在describe中。

代码语言:javascript
复制
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);
        });
    });
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39829395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档