看來sinon.spy(object, method)
沒有像預期的那樣包裝我的對象#方法。sinon spy在異步回調中沒有包裝方法
(我有我看到了同樣的問題,因爲描述here和here一種不安的感覺,但我不明白爲什麼這應該是我打電話sinon.spy(...)
之前已經實例化我的對象,而據我所知我」米不使用任何緩存對象)
下面是完整的測試文件:
var
AmbitParser = require('../lib/parsers/ambit-parser'),
expect = require('chai').expect,
sinon = require('sinon');
describe('AmbitParser', function() {
var ambit_parser = new AmbitParser();
describe('#extractLineItems()', function() {
it('calls extractLineItems once', function(done) {
var spy = sinon.spy(ambit_parser, 'extractLineItems');
ambit_parser.parseBills(function gotBills(err, bills) {
expect(ambit_parser.extractLineItems.callCount).to.equal(1); // => expected undefined to equal 1
expect(spy.callCount).to.equal(1); // => expected 0 to equal 1
done();
});
ambit_parser.extractLineItems.restore();
}); // calls extractLineItems once
}); // #extractLineItems
}); // AmbitParser
在「預期不確定等於1」至expect(ambit_parser.extractLineItems.callCount).to.equal(1);
結果的電話,如果我改變,要expect(spy.callCount).to.equal(1);
,我得到'預計0到equa 1'。
在一起,這讓我認爲對sinon.spy(...)
的調用沒有按預期包裝ambit_parser.extractLineItems方法,但我不明白爲什麼會出現這種情況。