首頁 > web前端 > js教程 > 主體

關於測試覆蓋率的真相

Mary-Kate Olsen
發布: 2024-09-28 16:23:01
原創
506 人瀏覽過

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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板