gpt4 book ai didi

javascript - 用 enzyme 测试重组的 HOC

转载 作者:数据小太阳 更新时间:2023-10-29 04:41:40 25 4
gpt4 key购买 nike

我如何测试(使用 jest+enzyme)以下使用 recompose 创建 HoC 的代码:

import {compose, withState, withHandlers} from 'recompose'

const addCounting = compose(
withState('counter', 'setCounter', 0),
withHandlers({
increment: ({ setCounter }) => () => setCounter(n => n + 1),
decrement: ({ setCounter }) => () => setCounter(n => n - 1),
reset: ({ setCounter }) => () => setCounter(0)
})
)

在执行浅渲染时,我可以访问 countersetCounter 属性,如下所示:

import {shallow} from 'enzyme'

const WithCounting = addCounting(EmptyComponent)
const wrapper = shallow(<WithCounting />)

wrapper.props().setCounter(1)
expect(wrapper.props().counter).toEqual(1)

最大的问题是,如何访问处理程序(incrementdecrementreset)并调用它们?它们不会出现在 wrapper.props()

最佳答案

因此您可以通过先找到实例来访问 Prop :

const EmptyComponent = () => null;
const WithCounting = addCounting(props => <EmptyComponent {...props} />);
const wrapper = mount(<WithCounting />);

wrapper.find(EmptyComponent).props().setCounter(1);
expect(wrapper.find(EmptyComponent).props().counter).toEqual(1);

关于javascript - 用 enzyme 测试重组的 HOC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45326755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com