1

在这个 plunk中,我有一个由 Jasmine 测试测试的 Angular 服务。测试显然找不到服务,我明白了

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

并且

错误:声明位置

这里有什么问题?

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);
    }));

});
4

1 回答 1

1

两个问题...

  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

于 2017-01-31T03:20:25.227 回答