ライブラリの仕様を作成して、値が定期的に発行されるようにしました。私は sinonjs を使用しており、スパイとしてコールバックを作成しました。私は sinonjs で偽のタイマーを使用して、10 秒の余分な 2 つの間隔をシミュレートしています。ただし、テストが tick メソッドの最初の使用に到達すると、エラーが発生します。以下のエラーが発生します
ExpectationError: Unexpected call: getTheValue()
Expectation met: getTheValue([...]) once
以下は私のテストのコードです
it('should emit the values at an interval', function () {
var callback = this.sandbox.spy();
var interval = this.sandbox.useFakeTimers();
this.myLib.emitValues(callback);
interval.tick(1000);
interval.tick(1000);
callback.should.have.been.calledWith('test');
});
これは私の生産コードです
_getValue() {
var value = getTheValue(this.id);
this.myListener(value);
}
emitValues(callback) {
this.myListener = callback;
this._getValue();
setInterval(() => this._getValue(), 1000);
}
なぜこのエラーが発生するのか、誰にも分かりますか?