开发一个回调驱动的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);发布于 2013-11-24 03:34:44
您应该查看sinon.match应用程序接口(http://sinonjs.org/docs/#sinon-match-api)。
使用sinon.match.func,上面的示例将变成:
var serviceFunction = this.spy(); // or `sinon.spy()`
var functionUnderTest = create(serviceFunction);
var thing = 'arbitrary/thing'
functionUnderTest(thing);
assert.calledWith(thing, sinon.match.func);https://stackoverflow.com/questions/15693467
复制相似问题