Cuando estás probando tus aplicaciones de React debes tener en cuenta lo siguiente:
Probar los componentes presentacionales de forma aislada (sin Redux).
Probar los componentes conectados utilizando un mock del store. Un mock es un objeto que simula ser otro objeto.
Probar las funciones reductoras.
Probar los actions creators.
El primer punto está en el módulo de React, así que nos vamos a concentrar en los otros tres.
Probando los componentes conectados
Los componentes conectados de Redux reciben el store como prop, así que podemos crear un mock del store y pasárselo. Para eso vamos a utilizar una librería llamada redux-mock-store.
Ahora creemos una prueba de un componente conectado:
importReactfrom"react";import{render}from"enzyme";importconfigureStorefrom"redux-mock-store";importTaskListfrom"./TaskList";constmockStore=configureStore();it("renders no tasks when store is empty",()=>{conststore=mockStore({tasks: [] });constwrapper=render(<TaskListstore={store}/>);expect(wrapper.find('.task').length).toBe(0);});
El siguiente video muestra lo que acabamos de hacer en más detalle.
Probando las funciones constructoras
El primer paso para poder probar las funciones constructoras es moverlas a un archivo independiente, por ejemplo en un archivo reducers.js:
Ahora, en el store debemos importarlas:
La forma de probar las funciones constructoras es invocándolas con diferentes estados iniciales y diferentes acciones para verificar que los nuevos estados sean los esperados:
### Probando los action creators
La forma más fácil de probar los action creators es invocarlos y verificar que devuelvan la acción que esperamos. Por ejemplo:
Para conocer otra forma y probar action creators con redux-thunk mira el siguiente video: