componentDidMount常量运算符的Jest单元测试用例

时间:2018-01-28 07:43:30

标签: reactjs babel-jest

我有componentDidMount有一个const。我试图覆盖具有三元运算符的const的单元测试用例。任何人都可以帮我解决这个如何涵盖三元运算符的情况。

componentDidMount() {
    const learnerId = (this.props.routeParam) ?
            this.props.routeParam.learnerId :
            MaterialModuleList.getQueryString('learnerId');
}

1 个答案:

答案 0 :(得分:0)

我想你正在使用Enzyme和Jest来编写测试。如果您还没有,请结账Enzyme。

您需要两个案例才能达到100%的覆盖率。首先,使用routeParam安装组件组件,然后通过将routeParam设置为false来安装组件。或者,您可以使用setProps方法(来自酶)用于后一种情况。

component.setProps({
    routeParam: false
});

在这里,对于后一种情况,您可以使用MaterialModuleList.getQueryString方法来断言它是否被调用。

然而,对于第一种情况,你不能写一个断言(尽管测试将达到100%的覆盖率)。要编写断言,您应该返回const,或者将其设置为您可以访问的某个全局变量。