0

我有componentDidMount一个常量。我正在尝试涵盖具有三元运算符的 const 的单元测试用例。任何人都可以帮我解决如何涵盖三元运算符条件。

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

1 回答 1

0

我想您正在使用 Enzyme with Jest 来编写测试。如果您还没有,请查看 Enzyme。

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

component.setProps({
    routeParam: false
});

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

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

于 2018-01-28T08:03:22.827 回答