Estoy tratando de probar un componente React con enzima y mocha de la siguiente manera
import { mount, shallow } from 'enzyme'; import React from 'react'; import chai, { expect } from 'chai' import chaiEnzyme from 'chai-enzyme' import sinon from 'sinon' import MyComponent from 'myComponent' chai.use(chaiEnzyme()) describe('MyComponent', () => { const store = { id: 1 } it ('renders', () => { const wrapper = mount(<MyComponent />, {context: {store: store}}) }) })en realidad no he escrito la prueba ya que falla en la declaración de contenedor
Mensaje de error: TypeError: _this.store.getState no es una función
¡No tengo idea de cuál es el problema y no puedo encontrar nada que aborde esto!
¡Cualquier ayuda sería genial!
Este error significa que la tienda no puede obtener el estado correctamente. Recomendaría burlarse de la tienda usando redux-mock-store e importar configureStore
import configureStore from 'redux-mock-store';luego búrlate del estado haciendo esto
const initialState = { id: 1 }; const mockStore = configureStore();y puede continuar envolviendo su componente con el proveedor
import { Provider } from 'react-redux'; // add this to the top of your file const wrapper = mount( <Provider store={mockStore(initialState)}> <MyComponent /> </Provider>, );Además, ¿no debería ser chai.user() chai.use() en su ejemplo de código?