我的服务包含以下详细信息:
class MyService {
myFunction(param){
return Observable.create(obs => {
callsDBfunc(param, (err, res) => {
if(err)
obs.error(err);
else
obs.next(res);
});
});
}
}
当我试图测试它时,我收到一个错误:
错误:超过2000毫秒的超时。确保正在进行done()回调 在这个测试中调用。
我的测试如下:
it('test signup()', (done) => {
authService = new AuthService();
let credentials = {username: '1234', password: '1234'};
let spyVMAddUser = spy(VM_Users_AddUser, 'call');
authService.signup(credentials).subscribe(data => {
expect(data).to.eql(credentials);
done();
});
assert.calledOnce(spyVMAddUser);
spyVMAddUser.restore();
});
我尝试过(1)将observale转换为Promise,然后像.then(完成,完成)一样将链接完成到最后。 (2)尝试使setTimeOut(20000)得到相同的错误。
(3)我甚至试图将该方法存根,而不是使用以下代码进行间谍处理并得到相同的错误。
stub(VM_Users_AddUser, 'call').withArgs(credentials).returns(credentials);
请帮忙。我试图在过去2-3天内解决此错误。
答案 0 :(得分:-1)
发现了这个问题。我没有使用appro回调调用函数。当我使用yieldAaync(null,callbackSpy)调用stub时,它工作正常。