一些service通常会通过http访问远程服务,为了使程序结构更加优雅,服务通常会返回的promise,这样的service应该怎样测试呢? 下面的例子给出模拟http服务失败的场景:
it('should call errorCallback when register-session returning error HTTP status code', function() {
$httpBackend
.expectPOST(baseUrl
+ 'token-authentication/register-session/', '{"root":"1.2.3.4.5","extension":"90000102"}')
.respond(500,
{ sessionId: "--session-id--" }, {header: 'one'});
var
promise = tokenAuthenticationServi ce.authenticateSession({root:
'1.2.3.4.5', extension: '90000102'});
var
success = false;
var
error = false;
var
reason;
promise.then(function(value)
{ success = true; }, function(r) { reason = r; error = true; });
$httpBackend.flush();
expect(promise).toBeDefined();
expect(success).toBe(false);
expect(error).toBe(true);
});
it('should call errorCallback when register-session returning error HTTP status code', function() {