React Native Jest覆盖输出受ES6模块导出方式的影响

时间:2018-04-29 04:01:35

标签: javascript react-native jestjs

我有一个简单的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%。这背后的原因是什么?我做错了什么,或者遗漏了什么?

1 个答案:

答案 0 :(得分:0)

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

import {StyleSheet} from 'react-native';

const styles = StyleSheet.create({
  root: {
    position: 'relative',
  },
});

export default styles;

P.S。当我使用不带const的export时,我的测试完成了 0%覆盖率