我有一个实用程序文件,其中包含许多导出以及默认导出.命名和导出默认值都在同一个组件中使用.我无法确定如何针对同一测试中的命名和默认组件编写测试.
下面的代码以简化的方式说明了应用程序.如果我遗漏了一些重要的东西,请告诉我.谢谢!
utils.js
export const mock1svc = () => {
return true;
};
const mock2svc = () => {
return true;
};
export default mock2svc;
Run Code Online (Sandbox Code Playgroud)
comp.js (fyi,app呈现罚款)
import Utils, { mock1svc } from 'utils';
...
render (
<p>{mock1svc()}</p>
<p>{Utils()}</p>
)
Run Code Online (Sandbox Code Playgroud)
comp-test.js
我可以测试默认导出:
jest.mock('../mock-utils', () => jest.fn());
生成错误: TypeError: (0 , _mockUtils.mock1svc) is not a function
或测试命名导出:
jest.mock('../mock-utils', () => ({
mock1svc: jest.fn(),
mock2svc: jest.fn(),
}));
Run Code Online (Sandbox Code Playgroud)
生成错误: TypeError: (0 , _mockUtils.default) is not a function
我尝试了各种方法,但都失败了.
非常感谢您提供的任何帮助!
法案
该utils模块正在导出一个对象。您应该能够创建该对象并像.default这样分配它:
jest.mock('../mock-utils', () => {
const mockUtils = {
mock1svc: jest.fn(),
mock2svc: jest.fn(),
};
mockUtils.default = jest.fn();
return mockUtils
});
Run Code Online (Sandbox Code Playgroud)
确保您模拟的路径“指向”与 import 语句相同的位置。
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |