我有一个SampleComponent
可挂载另一个“连接的组件”(即container
)的组件。当我尝试SampleComponent
通过mount
ing
进行测试(因为我需要componentDidMount
)时,出现错误:
永久违反:在“
Connect(ContainerComponent)”的上下文或属性中找不到“存储”。可以将根组件包装在中,或者将“存储”作为道具明确传递给“
Connect(ContainerComponent)”。
对此进行测试的最佳方法是什么?
实际上,我要做的就是将redux
商店(和Provider
)带进来,并将其包装在一个实用程序组件中,如下所示:
export const CustomProvider = ({ children }) => {
return (
<Provider store={store}>
{children}
</Provider>
);
};
然后,我mount
将SampleComponent
和对其运行测试:
it('contains <ChildComponent/> Component', () => {
const wrapper = mount(
<CustomProvider>
<SampleComponent {...defaultProps} />
</CustomProvider>
);
expect(wrapper.find(ChildComponent)).to.have.length(1);
});