2012-09-11 54 views
1

我想弄清楚如何正確編寫單元測試數字轉換爲100%的測試覆蓋率,並涵蓋所有可能性。如何正確地單元測試號碼轉換

比方說,我有一個函數將整數轉換爲羅馬數字。它適用於從1到3999:

function integerToRoman(integer) { ... } 

我怎樣才能確保它實際工作?爲1到3999之間的每個數字編寫4000個單元測試似乎不是一個好的選擇。另一方面,如果我只是選擇一些隨機數字併爲它們編寫測試,那麼我不能100%確定該函數正在工作。

回答

1

100%覆蓋並不意味着測試每一個可能的輸入值。但它意味着你:

  1. 蓋上測試每個功能線
  2. 蓋上測試正常(通用)輸入值(不是所有的可能,但是從不同範圍,如果他們以不同方式處理)
  3. 封面所有的邊緣情況下,你能想到的
  4. 覆蓋了各種無效的輸入值(不包括輸入值以及)

就是這樣。