我正在尝试测试一个使用react-redux 进行状态管理的组件。
为了快速测试,我想模拟 useSelector,如下所示:
const templates = [
{
id: ...,
name: ...,
...
},
{
id: ...,
name: ...,
...
},
]
jest.mock('react-redux', () => ({
...jest.requireActual('react-redux'),
useSelector: jest.fn(),
}));
describe('some awesome description', () => {
beforeEach(() => {
useSelector.mockImplementation(callback => callback(templates));
});
});
Run Code Online (Sandbox Code Playgroud)
但在运行测试时,会失败,如下所示:
TypeError: Cannot read properties of undefined (reading 'ids')
141 | describe('layouts/TemplatesPanel', () => {
142 | beforeEach(() => {
> 143 | useSelector.mockImplementation(callback => callback(templates));
| ^
Run Code Online (Sandbox Code Playgroud) unit-testing reactjs jestjs react-redux react-testing-library