在玩笑模拟中使用原始函数会导致无限循环

时间:2019-11-05 16:36:05

标签: jestjs dynamoose

我有一个来自dynamoose的可链接方法,在测试中,我想向该链添加一个附加方法。

基本上,在测试中,我想替换所有的

实例
Model.query(key).otherChainableMethods()

使用

Model.query(key).limit(LIMIT).otherChainableMethods()

所以我尝试了:

Model.query = jest.fn(key => Model.query(key).limit(LIMIT))

但这显然导致某种无限循环,因为我得到了RangeError: Maximum call stack size exceeded

如何在模拟实现中使用函数的原始实现?

1 个答案:

答案 0 :(得分:0)

我找到了一个简单的解决方案。我可以先简单地将原始方法存储在另一个变量中。

const originalQuery = Profile.query
Profile.query = jest.fn(key => originalQuery(key).limit(LIMIT))