【问题标题】:Mock Lerna scoped module with Jest用 Jest 模拟 Lerna 范围模块
【发布时间】:2021-12-04 18:01:41
【问题描述】:

我有一个使用 Lerna 的 monorepo 设置。项目使用 tsc 编译,测试使用 ts-jest v27 运行。

我正在尝试测试的其中一个文件包含以下代码:

import { someFunction } from '@local/package/dist/something'

const someLogic = () => {
  someFunction()
}

@local/package 是 Lerna 符号链接的本地 monorepo 包。

我需要模拟someFunction

我尝试过的事情:


jest.mock('@local/package/dist/something')

效果为零,仍调用原文件。


import * as something from '@local/package/dist/something'

jest.spyOn(something, 'someFunction')

零效应。


import * as something from '@local/package/dist/something'
something.someFunction = jest
      .fn()
      .mockReturnValue(123)

导致TypeError: Cannot set property "someFunction" of #<Object> which has only a getter


jest.config.js:

{
moduleNameMapper: {
    '(.*)something(.*)': '<rootDir>/src/somethingMock.js',
  }
}

零效应。


我尝试在包含测试的包的 package.json 旁边创建“mocks/@local/package/dist/something.js”。
零效应。


我累了,需要帮助....我做错了什么?

【问题讨论】:

    标签: jestjs ts-jest monorepo lerna


    【解决方案1】:

    这些是触发 HTTP 端点的端到端测试,我试图模拟的代码在单独的进程中运行,哈哈。

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 2021-02-04
      • 2021-07-06
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 2019-08-15
      • 2019-06-09
      相关资源
      最近更新 更多