调用函数作为prop在Enzym中传递

时间:2019-02-11 15:02:59

标签: javascript reactjs jestjs enzyme

我的组件看起来像这样

const FooBar = ({
    onClose,
}) => {
    return (
        <div
            className='foo'>
            <Icon
                name='close'

                onClick={onClose} />
        </div>
    )
}

我的测试如下

const mockFn = jest.fn();
const title = 'Title';

it('calls the onClose function', () => {
    const component = mount(
        <FooBar
            title={title}

            onClose={mockFn}
        />
    );

    component.instance().onClose();
    expect(mockFn).toBeCalled();
    component.unmount();
});

返回

  

TypeError:无法读取null的属性“ onClose”

如何调用onClose函数?

1 个答案:

答案 0 :(得分:1)

尝试

component.find(Icon).first().props().onClick();

另外,请看一下react-testing-library,它使这种测试更加容易。