我正在构建AngularJS应用程序,我正在尝试对其进行单元测试。我想要测试的是被拒绝的场景。
这是我要测试的服务:
.factory('LoginService',['Login', 'consoleService', function(Login, consoleService){
return {
getActiveUser: function() {
return Login.query({}).$promise.then(
function (users) {
return users[0];
},
function (error) {
consoleService.print(error);
}
);
}
};
}]);
我正在尝试为被拒绝的场景编写单元测试(发生错误)。我想确保在出现错误时调用print函数。我尝试了不同的例子,但都没有人工作。有谁知道测试它的正确方法是什么?
答案 0 :(得分:0)
模拟拒绝服务已在以下链接
中讨论过答案 1 :(得分:0)
您可以模拟Login服务,然后根据变量调用pass或fail函数。
var failLogin;
beforeEach(module(function ($provide) {
failLogin = false;
var mockLogin = {
query: function(data) {
return {
$promise: {
then: function(pass, fail) {
if (failLogin) {
fail('failure data');
} else {
pass('pass data');
}
}
}
}
}
}
$provide.value('login', mockLogin);
}
it('should pass', function(){
LoginService.getActiveUser();
// should pass
});
it('should fail', function(){
failLogin = true;
LoginService.getActiveUser();
// should fail
});