我有componentDidMount
有一个const。我试图覆盖具有三元运算符的const的单元测试用例。任何人都可以帮我解决这个如何涵盖三元运算符的情况。
componentDidMount() {
const learnerId = (this.props.routeParam) ?
this.props.routeParam.learnerId :
MaterialModuleList.getQueryString('learnerId');
}
答案 0 :(得分:0)
我想你正在使用Enzyme和Jest来编写测试。如果您还没有,请结账Enzyme。
您需要两个案例才能达到100%的覆盖率。首先,使用routeParam安装组件组件,然后通过将routeParam设置为false来安装组件。或者,您可以使用setProps方法(来自酶)用于后一种情况。
component.setProps({
routeParam: false
});
在这里,对于后一种情况,您可以使用MaterialModuleList.getQueryString
方法来断言它是否被调用。
然而,对于第一种情况,你不能写一个断言(尽管测试将达到100%的覆盖率)。要编写断言,您应该返回const,或者将其设置为您可以访问的某个全局变量。