Я просмотрел несколько ответов, но все рекомендуют обернуть основной компонент в Provider.
Я уже сделал это, но ошибка остается.
Это мой компонент App.js
const App = ({ store }) =>
<Provider store = {store}>
<div className = "App">
<Users/>
</div>
</Provider>
И я делаю очень простой тест. Первый раз с использованием фермента,
import React from 'react'
import Adapter from 'enzyme-adapter-react-16'
import Users from './'
import { shallow, configure } from 'enzyme'
configure({adapter: new Adapter()});
describe('First React component test with Enzyme', () => {
it('renders without crashing', () => {
shallow(<Users />);
});
});
Ошибка:
Нарушение инварианта: не удалось найти «магазин» в контексте «Подключение (пользователи)». Либо оберните корневой компонент в Provider, либо передайте пользовательский поставщик контекста React в Provider и соответствующий потребитель контекста React в Connect(Users) в параметрах подключения.
@ChristopherNgo Я действительно не знаю





Возможное решение состоит в следующем:
import React from "react";
import { shallow } from "enzyme";
import { Provider } from "react-redux";
import configureMockStore from "redux-mock-store";
import Userfrom "../User";
const mockStore = configureMockStore();
const store = mockStore({});
describe('First React component test with Enzyme', () => {
it('renders without crashing', () => {
shallow(
<Provider store = {store}>
<User/>
</Provider>
);
});
});
Спасибо, это сработало. Я не понимаю, почему я должен был это сделать, но это сработало
вы передаете магазин в свой компонент приложения в качестве опоры? Я не уверен, как вы разрушаете магазин здесь.