2017-10-27 11 views
0

と呼ばれていることが予想スパイ 、私はシナリオを、次のエラーが、取得するためのテストケース記述しようとしています「と呼ばれていることが予想スパイREINVITEを。」。上のイム・テスト「ジャスミン・コア:^ 2.5.2と 『カルマ:。。 ジャスミン:私の角度のアプリケーションでエラー

function reinvite() { 

     var emailsToReInvite = $j.map($scope.settingsData.userSettingsDetails, function(user) { 
      if(user.reInviteChecked){ 
       return user.email; 
      } 
     }); 

     if (emailsToReInvite.length >= 1) { 

      var invitation = { invitees: emailsToReInvite, listId: listId}; 
      invitation = JSON.stringify(invitation); 

      inviteCollaboratorsModalDataService.reinvite(invitation).then(
       function success(response) { 
        if(response.data.messages[0].code == 214){ 
         $scope.showReinviteSuccess = true; 

         } 
        }else{ 
         $scope.showReinviteSuccess = false; 
        } 
       } 
      ); 
     } 
    } 

:^ 1.3.0』私は同様のテストケースを書かれているし、彼らはエラーなしに渡さ

私のコントローラファイルでそして、私のspecファイル:

describe('settingsModalController', function() { 
var controllerUnderTest = "settingsModalController";  
var controllerResolver, rootScope, injector, $scope, inviteCollaboratorsModalDataService 

beforeEach(function(){ 
    angular.mock.module('sharedListApp'); 

    inject(function($controller, $rootScope, $injector){ 
     controllerResolver = $controller; 
     rootScope = $rootScope; 
     injector = $injector; 
    }); 

    $scope = rootScope.$new(); 
    inviteCollaboratorsModalDataService = injector.get('uiCommon.inviteCollaboratorsModalDataService'); 
}); 

it("should send re-invitation mail to selected users successfully", shouldReinviteSelectedUsers); 

function shouldReinviteSelectedUsers() { 
    var $q = injector.get('$q'); 
    $scope.settingsData = { 
     userSettingsDetails: [{email: '[email protected]'}] 
    }; 
    var data = { 
     messages: [ { code: 214 }], 
     invite: { 
      invitation: $scope.settingsData 
     } 
    }; 
    var response = { data: data }; 
    var mockResult = new $q.defer(); 
    mockResult.resolve(response); 

    spyOn(inviteCollaboratorsModalDataService, 'reinvite').and.returnValue(mockResult.promise); 

    controllerResolver(controllerUnderTest, { $scope: $scope }); 

    $scope.reinvite(); 
    $scope.showReinviteSuccess = true; 
    $scope.$apply(); 

    expect(inviteCollaboratorsModalDataService.reinvite).toHaveBeenCalled(); 
    expect($scope.showReinviteSuccess).toBe(true); 
} 

}

私は間違って何をやっているか、何が足りないのです事前に感謝を

答えて

0
?。

[OK]を、ので、私は自分のスペックコードはコントローラの最初の「が」ループにパースされなかった理由だった私のspecファイルに$ scope.settingsDataに追加するには、一つの変数を逃しました。中:

$scope.settingsData = { 
    userSettingsDetails: [{email: '[email protected]', reInviteChecked: true}] 
}; 
:それは本当reInviteChecked 'を追加で働いて手に入れました
関連する問題