我有大量需要简单模拟版本的react组件。
目前,对于每个组件,我必须创建一个新的mock文件夹,然后为该组件创建一个文件,然后为该组件创建一个新的简化版本。
├── models
│ ├── __mocks__
│ │ └── componentA.js
│ │ └── componentB.js
│ │ └── componentC.js
│ └── componentA.js
│ └── componentB.js
│ └── componentC.js我模拟的每个文件看起来都是这样的:
import React from 'react';
const ComponentA = ({
}) => (
<div>
Mocked ComponentA
</div>
);
export default ComponentA;这会导致大量的额外工作和重复的代码。
有没有一种方法可以使用Jest自动锁定工具来自动实现上述功能。
我尝试使用以下命令,但它返回了babel错误:
const ReactCMock = (name) => ({
__esModule: true,
default: (props) => (
<div className={name}>
{name}
</div>
),
});
jest.mock('./componentA', ReactCMock('Component A'));错误:babel-plugin-jest-hoist: The second argument of `jest.mock` must be an inline function.
发布于 2020-09-28 04:43:08
尝试使用function声明定义MockReactC (请参阅the comment below),使其在jest.mock()调用之前被提升,并将对MockReactC()的调用包装在箭头函数中:
function MockReactC(name) {
return {
__esModule: true,
default: (props) => (
<div className={name}>
{name}
</div>
),
};
}
jest.mock('./componentA', () => MockReactC('Component A'));https://stackoverflow.com/questions/64092579
复制相似问题