【发布时间】:2020-02-03 01:25:20
【问题描述】:
我正在尝试测试一个函数类型的默认道具,但不确定如何使用 Jest 模拟或间谍来做到这一点:
尝试以下测试:
it("should call default toggle function prop on click of footer button", () => {
const wrapper = shallow(
<InfoModal
isOpen={true}
message="Primary message"
secondaryMessage="Secondary message"
/>
);
const footerButton = wrapper.find("ModalFooter Button");
const fn = jest.spyOn(wrapper.props(), "toggle");
footerButton.simulate("click");
wrapper.update();
expect(fn).toHaveBeenCalled();
});
它说 TypeError: Cannot assign to read only property 'toggle' of object '[object Object]' 其中toggle是InfoModal的默认属性的函数。
我们如何测试一个已经设置为默认值而不是用户定义的函数属性。
【问题讨论】:
-
您可以访问 defaultProp 之类的;
InfoModal.defaultProps.function