0
我坚持测试在柴和Sinon的先例。一般来说,我得到的服务是xhr请求的包装,它返回承诺。我想这样来测试它:测试承诺的服务与柴和Sinon
beforeEach(function() {
server = sinon.fakeServer.create();
});
afterEach(function() {
server.restore();
});
describe('task name', function() {
it('should respond with promise error callback', function(done) {
var spy1 = sinon.spy();
var spy2 = sinon.spy();
service.get('/someBadUrl').then(spy1, spy2);
server.respond();
done();
expect(spy2.calledOnce).to.be.true;
expect(sp2.args[0][1].response.to.equal({status: 404, text: 'Not Found'});
});
});
我的笔记一下:
// spy2之后被称为预计完成断言
//试图用var timer = sinon.useFakeTimers()
和timer.tick(510);
没有结果
//尝试与柴作为许诺的 - 不知道如何使用它:-(
//在我的环境不能安装sinon-as-promised
只能选择NPM模块
任何想法如何修复此代码/测试此服务模块?
你调用'()完成'你的断言之前,而当你的测试已经完全结束它应该被称为。另外,是'service.get()'同步还是异步? – robertklep
@robertklep:好的,我不知道最后完成了()。 'service.get'是异步的(用于D3 XHR的包装) – cachaito