簡體   English   中英

在茉莉花中測試拒絕的承諾

[英]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);
            }
        );
    }
};

}]);

我正在嘗試為拒絕的方案(發生錯誤)編寫單元測試。 而且我想確保在發生某些錯誤時將調用打印功能。 我嘗試了不同的示例,但沒有一個沒有用。 有誰知道測試的正確方法是什么?

模擬拒絕服務已在下面的鏈接中進行了討論

如何使用模擬$ httpBackend測試錯誤分支

您可以模擬登錄服務,然后根據變量將其稱為通過或失敗函數。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM