【问题标题】:Jest unit test case for componentDidMount const ternary operatorcomponentDidMount const 三元运算符的 Jest 单元测试用例
【发布时间】:2018-07-07 03:26:41
【问题描述】:

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

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

【问题讨论】:

    标签: reactjs babel-jest


    【解决方案1】:

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

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

    component.setProps({
        routeParam: false
    });
    

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

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

    【讨论】:

      猜你喜欢
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 2012-09-17
      • 2012-10-14
      • 2018-12-24
      • 1970-01-01
      相关资源
      最近更新 更多