【发布时间】: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