私が間違っていることを理解するのは苦労しています。 サイモンモックが電話を受け付けない
私のようなJSクラスを持っている:export default class A {
constructor(repository) {
this._repository = repository;
}
async process(date) {
// ...
this._repository.writeToTable(entry);
}
}
と私が使用してリポジトリを皮肉ってテストを書き込もうとしていますsinon.mock
これは私がこれまで持っているものです。
describe('A',() => {
describe('#process(date)',() => {
it('should work', async() => {
const repository = { writeToTable:() => {} };
const mock = sinon.mock(repository);
const a = new A(repository);
await a.process('2017-06-16');
mock.expects('writeToTable').once();
mock.verify();
});
});
});
しかし、それは常にそれを言って失敗します
ExpectationError: Expected writeToTable([...]) once (never called)
私は(console.logを追加して)チェックして、テストで定義したオブジェクトを呼び出しています。
私はES2015とスーパー慣れていないよ非同期/のawait構築が、ES5あなたの中にテストが終了した後に呼び出されるテスト関数に引数コールバック関数を追加する必要があります。これは暗黙ですか?あるいは、関数の前に 'async'を置くことがPromiseを返すことを意味するのであれば、これはMochaサポートがテスト関数に約束を返すように働くはずです。 – oligofren