我的组件看起来像这样

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函数?

最佳答案

尝试

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


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

关于javascript - 调用函数作为prop在Enzyme中传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54633389/

10-12 01:28