【问题标题】:Sinon.js combining calledWith number of timesSinon.js 结合调用的次数
【发布时间】:2018-08-29 04:28:59
【问题描述】:

我知道sinon.js 可以测试间谍是否被调用了一定次数:

sinon.assert.calledTwice(mySpy.someMethod);

您可以测试是否使用某些参数调用了间谍:

sinon.assert.calledWith(mySpy.someMethod, 1, 2);

但是如何结合它们来测试一个方法是否被特定参数调用了特定次数?理论上是这样的:

sinon.assert.calledTwiceWith(mySpy.someMethod, 1, 2);

【问题讨论】:

标签: unit-testing sinon


【解决方案1】:

spy 提供对使用getCall() and getCalls() 对其进行的调用的访问。每个Spy call 都可以使用calledWithExactly() 等方法进行测试:

import * as sinon from 'sinon';

test('spy', () => {

  const spy = sinon.spy();
  spy(1, 2);
  spy(3, 4);
  expect(spy.callCount).toBe(2);
  expect(spy.getCall(0).calledWithExactly(1, 2)).toBe(true);
  expect(spy.getCall(1).calledWithExactly(3, 4)).toBe(true);

});

【讨论】:

  • 如果您不知道呼叫的顺序,这将不起作用。
猜你喜欢
  • 2014-06-18
  • 2014-05-07
  • 1970-01-01
  • 2021-02-10
  • 2013-03-21
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多