首页 > 解决方案 > 使用 Jest 模拟更复杂的依赖项 [即基于索引文件的嵌套依赖项]

问题描述

我已经阅读了关于用 Jest 模拟的其他问题,但我似乎并没有真正掌握它,尤其是对于更复杂的“替换”。

问题还在于我的依赖不仅仅是一个“导入'X'”,而是一个更复杂的嵌套事物。

const DefaultErrorHandler = require('common').utility.errorHandler.getNoConnectionHandler();
class ErrorHandler extends DefaultErrorHandler {  ...

困扰我的是 DefaultErrorHandler,所以我想用我更易于管理的 MockDefaultErrorHandler 替换它。

但是我该怎么做呢?没有文档或其他问题似乎适合我的情况(和/或我遗漏了一些重要的观点)

标签: javascriptmockingjestjs

解决方案


它与常规模拟没有太大区别 在测试代码中'put: const NoConnectionHandler = require('common/lib/utility/error/handler/NoConnectionHandler');

jest.mock('common-bon/lib/utils/error/handler/NoConnectionHandler');

请注意,此路径与我从 require... 行直观地“创建”的路径略有不同。拯救我的是,在“通用”文件中,函数“getNoConnectionHandler()”本身以 require(...) 结尾,而那个 require 的路径就是我需要的路径。


推荐阅读