如何测试茉莉花中的.then()?

时间:2014-12-11 14:14:25

标签: angularjs unit-testing jasmine angular-promise

我有以下代码,我试图在jasmine中测试

$scope.createTeam = function(team) {
var errorCB, successCB;
  successCB = function(resp) {
    return $scope.followRepository(resp.team, true);
  };
  errorCB = function(err) {
    return toaster.pop('error', 'Team Not Created', err);
  };
  return TeamService.createTeam(team).then(successCB, errorCB);
};

到目前为止,我已经提出了

this.TeamServiceSpy2 = spyOn(this.TeamService, 'createTeam').and.callThrough();

it("should create a team", function() {
  return this.scope.createTeam(this.teamMock).expect(this.TeamServiceSpy2).toHaveBeenCalled();
}); 

并且它通过但我对如何测试错误和承诺的成功部分感到困惑

1 个答案:

答案 0 :(得分:0)

您应该只使用it方法回调提供的参数。

这是一个工作示例

    it('should get a record', function(done) {
        var self = this;
        return user.get(id)
            .then(function(response) {
                expect(response.email).toEqual('test@test.com');
                done();
            })
            .catch(function(error) {
                self.fail(error);
                done();
            });
    });