我正在尝试在模块X中测试一个函数。这是一个相当复杂的函数。在此函数中,我在模块Y中导入一个调用第三方服务的函数。如果我对模块X的测试没有导入模块Y,如何在模块Y中存根这个第三方服务?
答案 0 :(得分:0)
您可以使用像mockery这样的项目在verify_obj
接缝处进行修补:
如果您尝试过在Node.js中使用模拟,那么毫无疑问 发现让你的模仿迷上了并不容易 面对Node的模块加载系统。当你的源测试 通过require拉入它的依赖关系,你想要你的模拟 提供而不是原始模块,以实现真正的单元测试 你的代码。
答案 1 :(得分:0)
假设您的模块A1 = 5d + 5e + 5f + 60 + 61
返回X
执行的操作的结果,我们可以说Y
如下:
X
您可以在这里更新const y = require ('y.js');
xWork () {
return y.doWork().result;
}
以注入X
,如下所示:
Y
从那里你可以在测试中生成一个xWork (y) {
return y.doWork().result;
}
的模拟,可以像这样注入:
Y
Javascript允许您模拟任何内容,而不需要任何非常适合单元测试的依赖项。希望它有所帮助。