无法在Karma

时间:2017-08-31 19:19:21

标签: karma-runner karma-jasmine

我的JS文件(我需要测试)是/JasmineTest/src/mySource.js。它有myObj对象

myObj={
    setA:function(value){
        a=value;
    },
    getA:function(){
        return a;
    },
};

我的Jasmine spec文件是/JamineTest/spec/mySpec.js。它测试myObj

describe("Jasmine sample suite",function(){
    it("tracks that spy was called",function(){
        expect(myObj.getA).toHaveBeenCalled();
    });

在业力方面,我已将spec文件位置指定为

files: [
        'spec/*.js'
    ],

当我在/ JasmineTest中启动Karma时,测试会出错

Chrome 60.0.3112 (Windows 10 0.0.0) Jasmine sample suite tracks that spy was called FAILED
        ReferenceError: myObj is not defined
            at UserContext.<anonymous> (spec/mySpec.js:4:9)

我尝试导出myObj module.exports = myObj;并使用require('../src/mySource.js')将其导入spec文件但我收到错误require is not defined

如何在specs文件中显示myObj?

1 个答案:

答案 0 :(得分:0)

除非您专门配置以进行捆绑,否则Karma不知道如何执行模块。一般来说,我希望在您的网络应用程序中使用与Karma相同的捆绑类型,因此Webpack或Browserify或类似产品。

另一种方法是在&#34;文件&#34;下列出mySource.js。 karma.conf.js中的字段,它只会执行它并将myObj作为一个全局变量,但这并不能很好地扩展。