Opcja 1) W ramach testu można zawinąć komponent kontenera z komponentem dostawcy React-Redux. Tak więc przy takim podejściu odwołujesz się do sklepu, przekazujesz go dostawcy i komponujesz testowany komponent w środku. Zaletą tego podejścia jest możliwość utworzenia niestandardowego sklepu dla testu. Takie podejście jest przydatne, jeśli chcesz przetestować części swojego składnika związane z Redux. Opcja 2) Może nie dbasz o testowanie elementów związanych z Redux. Jeśli jesteś zainteresowany testowaniem renderowania komponentu i zachowań związanych z lokalnym stanem, możesz po prostu dodać eksport nazwany dla niepołączonej wersji prostej komponentu. Aby wyjaśnić, kiedy dodajesz słowo kluczowe "eksportuj" do swojej klasy, mówisz, że teraz klasa może zostać zaimportowana na dwa sposoby z nawiasami klamrowymi {} lub nie. Przykład:
export class MyComponent extends React.Component{ render(){ ... }}
...
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent)
później na pliku testowego:
import MyComponent from 'your-path/MyComponent'; // it needs a store because you use "default export" with connect
import {MyComponent} from 'your-path/MyComponent'; // don't need store because you use "export" on top of your class.
Mam nadzieję, że pomaga ktoś tam.
Widzę, że używasz mounta, jeśli spróbuję zastąpić '' mount'' '' shallo'', pojawi się błąd. czy ty też to zauważyłeś? – Mehrdad
Ta odpowiedź działa w niektórych przypadkach, ale nie działa, gdy trzeba przetestować cykl życia komponentu. Na przykład wywołanie 'wrapper.setProps()' nie wyzwoli 'componentWillReceiveProps()' w 'SampleComponent'. –