我试图在我的LayoutDummy.js上获取所有快照以完成我的单元测试覆盖
当我运行测试时出现错误,它说 dummyFunc 不是如下所示的函数
我已经在功能组件和测试文件中编写了我的实际代码,如下所示
LayoutDummy.js
import React, { useEffect, useState } from 'react';
const LayoutDummy = () => {
const [caption, setCaption] = useState('loading...');
useEffect(() => {
dummyFunc();
}, []);
const dummyFunc = () => {
setCaption('dummyFunc is running');
};
return (
<div>
<p>LayoutDummy</p>
<p>{caption}</p>
</div>
);
};
export default LayoutDummy;
测试/LayoutDummy.js
import React, { useEffect } from 'react';
import ShallowRenderer from 'react-test-renderer/shallow';
import LayoutDummy from '../LayoutDummy';
const dummyFunc = jest.fn();
useEffect.mockImplementationOnce(fn => fn());
describe('mock func in useEffct', () => {
test('render', () => {
const shallow = new ShallowRenderer();
const tree = shallow.render(<LayoutDummy />);
dummyFunc.mockReturnValueOnce('dummyFunc is running');
expect(tree).toMatchSnapshot();
});
});
为什么该函数不能在我的单元测试中模拟,如果有任何建议通过所有快照进行测试。