In this plunk我有一个Angular / Jasmine测试试图模拟服务功能。模拟的服务函数需要由服务中的另一个函数调用。
这是我得到的错误:
Error: getTheDate() method does not exist
这是我的尝试,其中测试的函数getTheMonth
应该调用模拟函数getTheDate
,似乎spyOn
使用不正确:
angular.module("mymodule", [])
.service('myService', function(){
this.getTheDate = function() {
return new Date();
};
this.getTheMonth = function() {
var d = this.getTheDate();
return d.getMonth();
};
})
describe("Testing date functions", function() {
beforeEach(function(myService) {
module("mymodule");
var d = new Date();
d.setDate(12)
d.setMonth(2);
d.setFullYear(2018);
spyOn(myService, 'getTheDate').and.returnValue(d);
});
it('should return the month',
inject(function(myService) {
expect(myService.getTheMonth()).toEqual(2);
}));
});
答案 0 :(得分:1)
beforeEach(function(myService) {
module("mymodule");
应该是
beforeEach(module("mymodule"));
beforeEach(inject(function(myService) {