【问题标题】:Has buster.js / sinon something like `jasmine.any()`?buster.js / sinon 有类似 `jasmine.any()` 的东西吗?
【发布时间】:2013-03-28 22:44:59
【问题描述】:

在开发一个回调驱动的 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);

【问题讨论】:

    标签: javascript sinon buster.js


    【解决方案1】:

    您应该查看 sinon.match api (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);
    

    【讨论】:

    • 谢谢,很抱歉没有早点将此标记为正确答案。
    猜你喜欢
    • 2017-07-15
    • 2014-09-22
    • 2010-11-29
    • 2020-03-26
    • 2011-10-18
    • 2023-03-09
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多