我坚持在 Chai 和 Sinon 中测试 Promies。通常,我使用 is wrapper 为 xhr 请求提供服务,它返回承诺。我试图这样测试它:
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);
没有结果
// 尝试了 chai-as-promised - 不知道如何使用它:-(
// 不能sinon-as-promised
只安装在我的环境中可用的选定 npm 模块
任何想法如何修复此代码/测试此服务模块?