gpt4 book ai didi

unit-testing - Jest - 如何覆盖模拟类和实现

转载 作者:行者123 更新时间:2023-12-04 12:56:57 24 4
gpt4 key购买 nike

我目前正在一个项目中使用 Jest 进行单元测试和代码覆盖。

一切正常,除了模拟类/方法的覆盖范围。我似乎没有得到想要的覆盖结果。我试图在 Jest 文档中找到一些东西并在网上搜索答案,但我似乎找不到任何关于它的东西。

问题是,当我使用模拟实现(例如 ./services/__mocks__/UserService.js )时,实际实现( ./services/UserService.js )导致覆盖率为 0%。这是一个合乎逻辑的结果,因为实现被模拟覆盖。

我可以通过使用 /* istanbul ignore next */ 来解决这个问题在实际服务中的每个方法上,或者只是将实际服务添加到 coveragePathIgnorePatterns属性并让它为所有模拟类生成覆盖率,但我想知道是否有任何方法可以让 Jest 自动使用模拟实现来生成覆盖率结果。

模拟类/函数和代码覆盖率的方法是什么?

提前致谢!

最佳答案

正如文档中所说 for manual mocks ,您将使用 ./services/__mocks__/UserService.js仅当您明确调用类似 jest.mock('./services/UserService'); 的内容时.

如果您想为 ./services/UserService 编写测试,请确信您不使用 jest.mock('./services/UserService');在此测试之前。

关于unit-testing - Jest - 如何覆盖模拟类和实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50348317/

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