Jest 如何计算百分比覆盖率?代码不是 100% 覆盖,但它说 100% 覆盖。我有一个文件,它有一个功能和几个文本。
import React from 'react';
import './App.css';
function App() {
function sum(a: number, b: number): number {
return a + b;
}
return (
<div className="App">
{sum(132, 13)}
<h1>Привет мир</h1>
<h2>Привет мир2</h2>
</div>
);
}
export default App;
测试文件
render(<App />);
const title = screen.getByText('Привет мир');
expect(title).toBeInTheDocument();
测试的时候可以看到,文件覆盖率不是100%,但是jest显示这个文件是100%覆盖的,为什么会这样呢?
Jest 使用
babel-plugin-istanbul
.可以在此处找到有关这一切如何在幕后工作的详细信息。我没有开始翻译所有这些并添加到答案中,因为会有很多多余的东西。
所以,让我们继续你的问题。你是对的。代码覆盖率是 100%,因为函数
sum
是在渲染阶段调用的。在渲染阶段调用的函数被认为是 jest 覆盖的。你可以添加一个常规函数,甚至不调用它,你会看到一条红线,这意味着这条线没有被测试覆盖。