首頁  >  文章  >  web前端  >  關於測試覆蓋率的真相

關於測試覆蓋率的真相

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-09-28 16:23:01382瀏覽

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