コールバック駆動型 API を開発するにあたり、特定の関数が特定のパラメーター セットと「任意の」関数 (コールバック) で呼び出されることを表現したいと思います。
ジャスミンは次のことができます。
var serviceFunction = jasmine.createSpy();
var functionUnderTest = create(serviceFunction);
var thing = 'arbitrary/thing'
functionUnderTest(thing);
expect(serviceFunction).toHaveBeenCalledWith(thing, jasmine.any(Function));
sinon/buster.js に同様の機能がありますか? これまでのところ、最初の引数のみをテストしていますが、テストでコールバックの必要性を表現したいと思います。
これは私がこれまでに持っているものです:
var serviceFunction = this.spy(); // or `sinon.spy()`
var functionUnderTest = create(serviceFunction);
var thing = 'arbitrary/thing'
functionUnderTest(thing);
assert.calledWith(serviceFunction, thing);