我想测试我的模块并模拟 axios 外部依赖项。问题是我直接测试的方法没有(直接)导入 axios。它相当“隐藏”在中间调用后面。
像这样,A和B是我自定义的模块:A调用B,B使用axios所以,A不导入axios,只导入B。
由于B是围绕axios的一个很薄的层,我不想直接测试它。我宁愿只测试 A,然后模拟 axios。
这个怎么做?如果不是 axios,我有一个自定义模块 C,它有什么区别吗?
是的,您可以模拟模块 - 请参阅https://jestjs.io/docs/en/manual-mocks。要模拟 axios,只需使用jest.mock('axios')
,然后从“axios”导入的任何内容都将是模拟(您可以通过标准 Jest 模拟 API 对其进行配置)。请注意,它会在整个测试用例中被模拟,因此例如,如果您测试一个模块,每个模块使用两个其他模块,每个模块都使用 axios,则不能只为其中一个模拟 axios。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句