Używam Enzyme i możemy faktycznie użyć komponentu example podanego w dokumentach jako podstawę dla mojego pytania.W jaki sposób jeden stan dostępu w zagnieżdżonym składniku React owinięty przez HOC?
Załóżmy, że ten komponent <Foo />
korzysta z komponentu <Link>
z ReactRouter i dlatego musimy go przetestować w postaci <MemoryRouter>
.
Tutaj leży problem.
it('puts the lotion in the basket',() => {
const wrapper = mount(
<MemoryRouter>
<Foo />
</MemoryRouter>
)
wrapper.state('name') // this returns null! We are accessing the MemoryRouter's state, which isn't what we want!
wrapper.find(Foo).state('name') // this breaks! state() can only be called on the root!
})
Tak, dokładnie nie wiem, jak uzyskać dostęp do lokalnego stanu komponentu przy użyciu <MemoryRouter>
.
Być może wykonuję nieświadomy test? Czy próbujesz uzyskać/ustawić zły stan składników w testach? Nie mogę sobie tego wyobrazić, ponieważ Enzym ma metody pobierania/ustawiania stanu komponentu.
Tylko nie wiem, w jaki sposób należy uzyskać dostęp do elementów wewnętrznych komponentu owiniętego w <MemoryRouter>
.
Każda pomoc będzie bardzo ceniona!
pokrewne: https://stackoverflow.com/questions/42245215/how-to-test-child -component-metoda-z-enzymem – indiesquidge