我正在尝试使用 Enzyme 来测试组件的方法。我知道执行此操作的典型方法是使用酶instance()
method.
问题是,这只适用于root
组件和我的组件需要包装在两个上下文提供程序中才能渲染(即react-router和apollo客户端)。
const wrapper = mount(
<ApolloProvider client={client}>
<MemoryRouter initialEntries={["/login"]}>
<AuthFormContainer />
</MemoryRouter>
</ApolloProvider>
);
我该如何测试methodA
of AuthFormContainer
在这种情况下 ?
对于单元测试,您不应该担心其他组件。但如果必须的话,您可以使用浅层渲染。这是我所做的:
const wrapper = shallow(
<ApolloProvider client={client}>
<MemoryRouter initialEntries={["/login"]}>
<AuthFormContainer />
</MemoryRouter>
</ApolloProvider>
);
获取组件树AuthFormContainer
using:
const authFormControllerTree = wrapper.find(MemoryRouter).shallow().find(AuthFormContainer).shallow()
现在来测试一下methodA
in the AuthFormContainer
,你可以这样做:
authFormControllerTree.instance().methodA();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)