0
我有以下简单的工厂,我想写一个单元测试。Jasmine和AngularJS - 当函数被用作依赖时如何测试工厂函数
(function() {
"use strict";
angular
.module("math")
.factory("addservice", [addTwoNumbers]);
function addTwoNumbers(a, b) {
return a + b;
}
return { add: addTwoNumbers };
})();
这是我迄今在我的测试规范。
describe('adding two numbers', function() {
var addService;
beforeEach(function() {
module('math');
inject(function ($injector) {
addService = $injector.get('addservice');
});
});
it('should add two numbers and get 2', function() {
var result = addService.add(1, 1);
expect(result).toBe(2);
});
});
当试图运行这个单元测试我得到TypeError:addService.add不是一个函数。我会注意到,如果我将工厂声明更改为下面的代码,我可以得到这个工作,但是我们遇到了一个问题,那就是缩小了参数名称并将其更改为a,b,c等。 (当传递$ q,$ http和许多其他依赖项时)并破坏代码,所以我们转向了上面所看到的。这显然是一个非常基本的例子,这就是为什么我无法得到这个工作是如此令人沮丧。
(function() {
"use strict";
angular
.module("math")
.factory('addservice', [function() {
function addTwoNumbers(a, b) {
return a + b;
}
return { add: addTwoNumbers };
}
]);
})();
看来我需要引用addTwoNumbers函数,但不知道该怎么去做。我可能错过了一些非常明显的东西,所以不胜感激。