本文介绍了尚未使用Jest调用反应属性方法的测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
if(this.props.myFun) {
this.props.myFun();
}
为了测试这一点,我这里有两个案例:1.将道具传递给组件的位置 <ChildComp myFun={value => value } /> and I can test it from the child-
const comp = mountWithIntl(<ChildComp myFun={value => value } />);
expect(comp.instance().props.myFun).toHaveBeenCalled();
const comp = mountWithIntl(<MyComp />);
expect(comp.instance().props.myFun).not.toHaveBeenCalled();
但是,由于如果我在安装组件时模拟道具,方法将被调用。但我如何测试未定义或未被嘲笑的道具?如果我没有通过道具而这样做:expect(comp.instance().props.myFun).not.toHaveBeenCalled();
我将获得:
根据我的代码,我不能这样做请帮帮忙
推荐答案
我认为您无法测试未传递的函数是否未被调用。您可以做些什么来测试它是否在没有该函数的情况下被渲染。这应该足够了
这篇关于尚未使用Jest调用反应属性方法的测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!