[英]Testing rejected promise in Jasmine
我正在構建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);
}
);
}
};
}]);
我正在嘗試為拒絕的方案(發生錯誤)編寫單元測試。 而且我想確保在發生某些錯誤時將調用打印功能。 我嘗試了不同的示例,但沒有一個沒有用。 有誰知道測試的正確方法是什么?
模擬拒絕服務已在下面的鏈接中進行了討論
您可以模擬登錄服務,然后根據變量將其稱為通過或失敗函數。
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
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.