我想从 redux 商店模拟状态并使用 jest 测试它们
import React from 'react';
import { mount, shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
import{ users, question,questions } from '../utils/_DATA';
import '../setupTests';
import { LeaderBoard } from '../containers/LeaderBoard';
import configureStore from 'redux-mock-store';
import renderer from 'react-test-renderer';
import { Provider } from 'react-redux';
const mockStore = configureStore([]);
const ComponentTest =(component) => expect(toJson(component)).toMatchSnapshot();
describe('Containers tests', () => {
let store;
let MyComponent;
beforeEach(() =>{
store = mockStore({
users,
signUser:'tylermcginnis',
questions
});
store.dispatch = jest.fn();
MyComponent = renderer.create(
<Provider store={store}>
<LeaderBoard />
</Provider>
);
});
it('should render leaderboard without error', () => {
expect(MyComponent.toJson()).toMatchSnapshot();
})
写完后jest --watch
,我发现这个错误表明状态数据无法传递给组件
TypeError: Cannot convert undefined or null to object
at Function.values (<anonymous>)
The above error occurred in the <LeaderBoard> component:
LeaderBoard组件可能会从存储中检索传递的数据