gpt4 book ai didi

javascript - mock 函数开 Jest 但开 Jest 调用原始函数

转载 作者:行者123 更新时间:2023-11-29 20:52:34 25 4
gpt4 key购买 nike

我有一个返回 true 或 false 的函数,我们称它为 myFunc

myFunc (){
if(something){return true}
else{return false}
}

这就是它为了 arg 而做的

然后我在别的地方调用它

if(myFunc()){

}else{
}

当我将其注销时,它不断地显示为错误。然而,当我在我的测试中像这样 mock 它时:

const myMock = (myModule.myFunc = jest.fn())
myMock.mockReturnValue(true)

那么为什么当我从索引文件中记录它时它仍然返回错误?或者这不是模拟的工作方式吗?

最佳答案

我猜 myModule 是您导入的对象,然后您在该对象上设置了模拟函数。但是在 myModule 文件中,您是直接引用该函数,而不是通过模块引用,对吧?

正确的方法可能是将 myFunc 移出 myModule。但是如果你想把它留在那里,那么你将不得不部分地模拟 myModule:

jest.mock('./myModule', () => {
return {
...jest.requireActual('./myModule'),
myFunc: jest.fn()
}
})

但请认真考虑将 myFunc 移出 myModule,因为部分模拟很困难且令人困惑。

关于javascript - mock 函数开 Jest 但开 Jest 调用原始函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51084528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com