如何模拟作为函数调用响应返回的特定对象?



我有一个实现,我想模拟我创建的服务:

this.device = major.get('alp").devC === 'devType';

这发生在组件的构造函数中。我想在我的开玩笑测试用例中模拟同样的东西,我所做的是:

jest.spyOn(major, 'get').mockImplementation(() => {
return { devC: 'devType2' };
});

我检查并可以看到我的代码正在进入我的模拟并正确返回值,但是当我运行测试用例时,我得到了未定义的 devC。

我通过将日志放入组件中进行检查,但随后测试在测试用例中失败,指出上述相同错误,但在控制台屏幕上正确打印,该测试正在运行手表。

我想我找到了解决问题的方法。所以问题在于你放置jest.spyOn的地方。由于我在构造函数中进行了方法调用,因此甚至在我们创建包装器实例之前,甚至在我们获取浅层/挂载组件的引用之前,放置间谍也很重要。

如果您有任何监视构造函数调用中的方法的此类要求,最好的办法可能是将间谍放在测试用例或 beforeEach(( 中(如果您希望它适用于所有测试用例(。

最新更新