【问题标题】:React Native Jest coverage output affected by how ES6 module is exportedReact Native Jest 覆盖输出受 ES6 模块导出方式的影响
【发布时间】:2018-04-29 04:01:34
【问题描述】:

我有一个简单的 React Native 按钮组件,它有自己的 index.jsstyles.js 文件。这就是styles.js 的样子:

import { StyleSheet } from "react-native";

export default StyleSheet.create({
  container: {
    borderRadius: 2
  },
  button: {
    borderRadius: 2
  }
});

当我为这个按钮组件编写一个简单的单元测试时,我看到styles.js 上的代码覆盖率是0%。但是,Jest 没有抛出任何错误,说它与我配置的 80% 覆盖阈值不匹配。

出于好奇,我将 StyleSheet 分配给一个常量并改为导出它,从而得到以下版本的styles.js

import { StyleSheet } from "react-native";

const styles = StyleSheet.create({
  container: {
    borderRadius: 2
  },
  button: {
    borderRadius: 2
  }
});

export default styles;

这次 Jest 报道显示100%。这背后的原因是什么?我做错了什么,还是遗漏了什么?

【问题讨论】:

    标签: javascript react-native jestjs


    【解决方案1】:

    就我而言,我使用了 constdefault 导出。 结果我得到了 100% 的覆盖率。

    import {StyleSheet} from 'react-native';
    
    const styles = StyleSheet.create({
      root: {
        position: 'relative',
      },
    });
    
    export default styles;
    

    附:当我使用不带 const 的导出时,我的测试以 0% 覆盖率完成

    【讨论】:

      猜你喜欢
      • 2020-11-05
      • 2016-07-12
      • 1970-01-01
      • 2017-09-08
      • 2016-04-17
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多