此 Angular 服务 Jasmine 测试中缺少什么?

What's missing in this Angular service Jasmine test?

In this plunk 我有一个通过 Jasmine 测试的 Angular 服务。测试显然找不到服务,我得到

Error: [$injector:unpr] http://errors.angularjs.org/1.6.1/$injector/unpr?p0=UtilsProvider%20%3C-%20Utils

还有

Error: Declaration Location

这里有什么问题?

Javascript:

var app = angular.module("app", [])

app.service('Utils', function(){

    this.sum = function(a, b) {
          return a + b;
    };

});


describe("Testing Service Utils", function() {

    beforeEach(function() {
        angular.module("app");
    });

    it('should sum',
        inject(function(Utils) {
            expect(Utils.sum(1,2)).to.equal(3);
    }));

});

两个问题...

  1. 为了注册模块配置进行测试,您需要使用angular.mock.module

    beforeEach(angular.mock.module('app'))
    // or simply beforeEach(module('app'))
    
  2. 等式断言是toEqual,不是to.equal

    expect(Utils.sum(1,2)).toEqual(3)
    

http://plnkr.co/edit/UZfKILseNklw2MgO2l8c?p=preview