这是我处理应用程序导航的简单服务。 如果用户点击" next"根据目前的状态,他将被重定向到下一页。
'use strict';
angular
.module('myAngularmodule')
.service('ButtonBarService',
function ($state, StatesConstants) {
return {
next: next
};
function next() {
switch ($state.current.name) {
case StatesConstants.LICENSE :
$state.go(StatesConstants.APPLICATIONGROUP);
break;
case StatesConstants.APPLICATIONGROUP :
$state.go(StatesConstants.ANALYSIS);
break;
default:
break;
}
}
});
这是我的spec文件,当我尝试测试失败时
'use strict';
describe('ButtonBarService', function () {
beforeEach(module('myAngularmodule'));
var ButtonBarService;
beforeEach(inject(function (_ButtonBarService_) {
ButtonBarService = _ButtonBarService_;
spyOn(ButtonBarService, 'next');
}));
describe('next()', function () {
it('should retrieve the current user', function () {
expect(ButtonBarService.next).toHaveBeenCalled();
});
});
});
它没有说"旁边的预期间谍已被召唤。" 在这个服务中没有后端的东西,我只是将它概括为处理buttonbar的东西。 我对前端很新。我看到的答案有$ http,但无法理解。
答案 0 :(得分:0)
尝试(编写ES6语法):
spyOn(ButtonBarService, 'next').and.callFake(() => true);
然后你的期望应该有效,我想。