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