【发布时间】:2020-06-22 10:44:24
【问题描述】:
我在我的代码中调用了这个函数并抛出了一个错误:
myFunction(message) {
if (!message) {
throw new Error('No Message')
}
}
和测试:
it.only('should throw error if no message', () => {
library.myFunction() // no message
expect(global.opener.postMessage).not.toHaveBeenCalled()
})
但是 Jest 只是指向单词 new 并且测试失败,没有其他消息。我该如何解决这个问题?
【问题讨论】:
-
您是否尝试过明确期望该调用会引发错误,请参阅jestjs.io/docs/en/expect#tothrowerror
-
@jonrsharpe 我也可以断言,但我只想断言我的函数没有被调用,我肯定可以这样做吗?
-
你可以,但如果你想让测试保持运行,那么something's需要捕捉错误——可能是你,只是try/catch,或者它可能是 Jest 使用期望。
-
啊好的。这就说得通了。我在另一个组件中发现了错误
-
还有什么组件?在它进入测试功能之前?给minimal reproducible example。
标签: javascript reactjs jestjs