如何使用TypeScript和Jest模拟深度嵌套的函数

时间:2020-06-13 17:04:03

标签: typescript mocking jestjs

我想测试我的模块并模拟axios外部依赖关系。问题是我直接测试的方法没有(直接)导入axios。它宁可“隐藏”在中间调用的后面。

像这样,A和B是我的自定义模块:A调用B,B使用axios 因此,A不导入axios,仅导入B。

由于B是axios周围非常薄的一层,所以我不想直接对其进行测试。我宁愿只测试A,并模拟axios。

如何执行此操作? 如果我有一个自定义模块C,而不是axios,它有什么不同吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以模拟一个模块-参见https://jestjs.io/docs/en/manual-mocks。要模拟axios,只需使用jest.mock('axios'),那么从'axios'导入的任何内容都将是模拟(您可以通过标准的Jest模拟API对其进行配置)。只需注意,它将在整个测试用例中被模拟,因此例如如果您使用axios测试使用其他两个模块的模块,则无法仅模拟其中一个。

相关问题