Lie*_*iem 2 unit-testing reactjs jestjs enzyme react-context
我第一次尝试使用React上下文API将信息从主要组件传递给他的孙组件。
到目前为止没有问题。一切正常。ChildComponent已检索到上下文值。
最后一个期望失败,并且上下文值是一个空对象。所以foo是不确定的
我在这里重新创建了问题:https : //codesandbox.io/embed/x25yop4x5w?fontsize=14
谢谢您的帮助
酶context影响传统的React上下文,而不影响现代的上下文API。应该用:
mount(<MyContext.Provider value={{foo: 987}}><ChildComponent/></MyContext.Provider>)
Run Code Online (Sandbox Code Playgroud)
并宣称:
expect(wrapper.find('h2').text()).toBe('Context value: 987');
Run Code Online (Sandbox Code Playgroud)
我用来测试需要安装在上下文提供程序树中的组件的方法是使用wrappingComponent和wrappingComponentProps 选项 mount。
这可以确保 mount(根组件)的返回值仍然是您要测试的组件(并且仍将支持仅适用于根组件的 API/选项,例如setProps)。
mount(<MyComponent />, {
wrappingComponent: MyContext.Provider,
wrappingComponentProps: {
value: { foo: 987 },
},
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |