【问题标题】:how to test a .then() in jasmine ?如何在茉莉花中测试 .then() ?
【发布时间】:2015-02-10 01:25:20
【问题描述】:

我有以下一段代码,我正在尝试在 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();
}); 

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

【问题讨论】:

    标签: angularjs unit-testing jasmine angular-promise


    【解决方案1】:

    你应该简单地使用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();
                });
        });
    

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多