从Jasmine单元测试加载Angular模块

时间:2015-12-07 11:23:25

标签: angularjs jasmine chutzpah

我尝试使用Chutpah和Jasmine在Visual Studio中设置我的Angular单元测试。

我收到此错误,我不确定原因:

这是在我的timelineservice.js文件中测试的代码(在我的角项目中,为我的第一次测试而简化)

angular.module('myApp').factory('timelineService',
    [

        function timelineServiceInit(){

            return {
                exciteText: function (msg) {
                    return msg + '!!!';
                }
            };
        }
    ]
);

这是我的单元测试:

describe('basicService tests', function () {
    var myservicenaam;


    // excuted before each "it" is run.
    beforeEach(function () {
        angular.mock.module('myApp', []);
        var $injector = angular.injector(['myApp']);

        var myService = $injector.get('timelineService');
        myservicenaam = myService;
    });



    //it's removed 
});

奇怪的是(imho),当我调试时,代码首先转到'timelineservice.js'文件,然后加载模块(这是正确的)。 我认为测试代码会先运行,然后加载模块。

在我的testproject中,我引用了angular文件和代码文件。

当我将angular.module('myApp', []);代码放入timelineservice.js文件时,一切正常。

1 个答案:

答案 0 :(得分:1)

问题在于您使用的是setter模式而不是getter模式,因此您的应用程序无法正确加载。在测试之前尝试以下声明:

 beforeEach(module('myApp'));