本文介绍了尚未使用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调用反应属性方法的测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 00:34