首页  >  文章  >  web前端  >  关于测试覆盖率的真相

关于测试覆盖率的真相

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-09-28 16:23:01507浏览

The truth about test coverage

一个强有力的真理。

看下面简单明了的代码:

function sum(a, b) {
  return a + b;
}

现在,让我们为它编写一些测试:

test('sum', () => {
  expect(sum(1, 2)).toBe(3);
  expect(sum(2, 3)).toBe(5);
  expect(sum(3, 4)).toBe(7);
  expect(sum(4, 5)).toBe(9);
});

我们的覆盖率是 100%,对吗?嗯,是的,我们确实做到了,事实上我们可以说我们获得了 400% 的覆盖率,因为所有代码都经过了 4 次全面测试,但是我们做到了吗?

事实是我们没有。我们正在使用有限的输入集来测试该函数,并且我们没有考虑边缘情况,也没有使用无效的输入来测试该函数。

考虑以下因素:

sum(1, '2');
sum(1, null);
sum(1, undefined);

在这种情况下会发生什么?该函数会抛出错误吗?它会返回一个值吗?它会破坏我们的应用程序吗?

请注意测试覆盖率陷阱。

测试覆盖率是一个强大的工具,但它不是最终的解决方案。这是一个可以帮助您了解有多少代码正在被测试的指标,但它并不能告诉您它的测试情况如何。

测试覆盖率可以在数量上为您提供帮助,但在质量上却无济于事。您可以编写良好的测试,考虑边缘情况,使用无效输入测试代码,并确保您的测试有意义且有价值。

结论

这是一篇非常短的文章,我承认,但我仍然希望它对您有用,提醒您编写良好测试的重要性。请记住,测试覆盖率是一种工具,而不是目标。充分利用它取决于您。

再见,

迈克尔。

以上是关于测试覆盖率的真相的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn