【发布时间】:2021-09-28 10:45:12
【问题描述】:
我正在单元测试的一个方法在该方法中多次调用具有不同参数的相同辅助方法。为了让我测试我的方法,我想使用 sinon 的 replace 函数将这个辅助方法的返回值替换为我的模拟数据,但是我每次调用该辅助方法时都需要返回不同的模拟数据。我该怎么做?
举个例子:
const obj = {
foo(num) {
return 5 + num;
},
methodToTest() {
return foo(1) + foo(2);
},
};
我想测试一下,如果foo在参数值为1时返回6,而foo在参数值为2时返回7时,methodToTest()是否能正常工作。
我想我正在寻找的是一种根据传入的参数替换 foo 的返回值的方法,例如:
sinon.replace(obj, 'foo(1)', sinon.fake.returns(6));
sinon.replace(obj, 'foo(2)', sinon.fake.returns(7));
知道我该怎么做吗?将不胜感激。
【问题讨论】:
标签: javascript typescript sinon