开发一个回调驱动的 API,我想用一组特定的参数和“任何”函数(回调)来表达某个函数。
Jasmine 可以执行以下操作:
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);