Sinon间谍使用两种不同的回调签名

时间:2017-07-11 19:29:56

标签: javascript node.js testing sinon

const sinon = require('sinon')

function test (use) {

  use(function (req, res) {
    return true
  })

  use(function (err, req, res, next) {
    return false
  })

}

test()

我需要一种方法来创建一个间谍,第一次使用use函数时它会被sinon.spy({}, {})传递,第二次需要使用sinon.spy(false, {}, {}, () => {}) }。

1 个答案:

答案 0 :(得分:1)

不确定我是否理解,但你的意思是这样吗?

let stub = sinon.stub();

stub.onCall(0).callsArgWith(0, {}, {});
stub.onCall(1).callsArgWith(0, false, {}, {}, () => {});

test(stub);

use是一个Sinon存根,在第一次调用时,调用第一个参数{}, {}作为参数,类似于第二个调用。