【发布时间】:2020-02-04 16:35:08
【问题描述】:
我有一个名为retry 的实用程序函数,它使用一些重试逻辑(下面的简化版本)包装传递的函数。
在某些测试中,我只想调用传递的函数一次,而不是执行重试逻辑。
app/retry.js
module.exports = async function retry(funcProvider) {
let retriesLeft = 5;
while (retriesLeft > 0) {
try {
return await funcProvider();
} catch (error) {
// delay for a bit
retriesLeft--;
}
}
};
和等效的__mocks__ 版本。
app/__mocks__/retry.js
module.exports = async function retry(funcProvider) {
return await funcProvider();
}
有没有办法在不使用__mocks__ 设置的情况下执行与上述相同的操作?我想使用类似jest.mock() (https://jestjs.io/docs/en/jest-object#jestmockmodulename-factory-options) 的工厂参数的东西在测试文件中内联执行此操作,但我无法找出正确的组合。想知道我是否遗漏了一些明显的东西,或者这是否是开玩笑的“限制”。请注意,我需要在实现中引用传递的参数。
【问题讨论】:
标签: javascript jestjs