【发布时间】:2019-04-16 06:43:18
【问题描述】:
如何使用 Enzyme 测试这种 HOC?我试过很浅,但它只覆盖了 40% 的组件。
export default compose(
withState('showDropdown', 'handleDropdown', false),
withHandlers({
handleClickOutside: props => () => {
props.handleDropdown(false)
},
menuItemClick: props => () => {
props.handleDropdown(false)
},
}),
onClickOutside,
)(AccountDropdown)
这是我的测试代码
const props = {
showDropdown: false,
handleDropdown: jest.fn(),
menuItemClick: jest.fn(),
onLogout: jest.fn(),
user: {},
}
const output = mount(<AccountDropdown
showDropdown={props.showDropdown}
handleDropdown={props.handleDropdown}
menuItemClick={props.menuItemClick}
onLogout={props.onLogout}
user={props.user}
/>)
console.log('output', output)
const TogleDropdown = output.find('TogleDropdown')
console.log('TogleDropdown', TogleDropdown)
expect(shallowToJson(output)).toMatchSnapshot()
我也无法测试事件,因为 console.log 输出:
output ReactWrapper {}
【问题讨论】:
-
你在测试中使用过
dive()吗? -
我试过但没用
-
可以添加测试代码吗?
-
添加了测试代码
-
onClickOutside是什么?