Angularjs/Karma:未捕获引用错误:未定义注入

Angularjs/Karma:未捕获引用错误:未定义注入,angularjs,jasmine,karma-runner,Angularjs,Jasmine,Karma Runner,我得到了这个服务 angular.module('common.utils', []) .service('Timer', function () { function Timer() { var start = new Date(); return function () { return (new Date()).getTime() - start.getTime(); }; } return T

我得到了这个服务

angular.module('common.utils', [])

.service('Timer', function () {
    function Timer() {
        var start = new Date();
        return function () {
           return (new Date()).getTime() - start.getTime();
        };
    }
    return Timer;
});
我正试图为它编写一个简单的测试:

describe('common.utils', function() {

    beforeEach(function () {
        module('common.utils');
    });

    it('has a timer service', inject(function(Timer) {
        expect(Timer).not.toBeNull();
    }));

}); 
我不断得到
ReferenceError:inject未定义


我包括了
angular.js
angular mocks.js
和所有的应用程序文件(
module
正在工作…)。我不明白问题是什么

我也有同样的问题

原来问题出在文件的加载顺序上。在加载角度模拟之前,必须加载jasmine

以下加载顺序将抛出问题中提到的错误:

<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/angular-mocks/angular-mocks.js"></script>
<script src="/bower_components/jasmine/lib/jasmine-core/jasmine.js"></script>
<script src="/bower_components/jasmine/lib/jasmine-core/jasmine-html.js"></script>
<script src="/bower_components/jasmine/lib/jasmine-core/boot.js"></script>

<!-- include spec files here... -->
<script src="/spec/test.js"></script>

ReferenceError:未定义注入

在几个jasmine示例中,代码中包含了一条附加注释:

<!-- include source files here... -->

这条评论帮助我们提醒我们按正确的顺序装载物品

<script src="/bower_components/jasmine/lib/jasmine-core/jasmine.js"></script>
<script src="/bower_components/jasmine/lib/jasmine-core/jasmine-html.js"></script>
<script src="/bower_components/jasmine/lib/jasmine-core/boot.js"></script>

<!-- include source files here... -->
<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/angular-mocks/angular-mocks.js"></script>

<!-- include spec files here... -->
<script src="/spec/test.js"></script>


仔细检查是否包含角模拟!如果是,那么注入函数应该在窗口对象中可用。确实如此,我在调试中运行只是为了确保-看到了吗?您可以共享您的karma conf文件吗?它是由
karma init
生成的标准文件。无论如何,这些文件都是由一个gulp任务指定的。。。我无法确定
inject
在哪里可用。似乎我只能在每次之前的
中使用它。检查您是否在karma conf对象的文件字段中包含angular.mock.js。您可以在“it”中使用注入函数(很明显,因为它在窗口中可用),我已经在测试中完成了。