如何正确单元测试数字转换

时间:2012-09-11 20:58:18

标签: javascript unit-testing

我正在试图弄清楚如何正确编写单位测试以进行数字转换,以获得100%的测试覆盖率并涵盖所有可能性。

假设我有一个将整数转换为罗马数字的函数。它的工作时间为1至3999:

function integerToRoman(integer) { ... }

如何确保它确实有效?为1到3999之间的每个数字编写4000个单元测试似乎不是一个好选择。另一方面,如果我只选择一些随机数并为它们编写测试,那么我无法100%确定该函数是否正常工作。

1 个答案:

答案 0 :(得分:1)

100%覆盖率并不意味着测试每一个可能的输入值。但这意味着你:

  1. 覆盖测试每个功能线
  2. 覆盖测试正常(通用)输入值(并非所有可能,但如果处理方式不同,则来自不同范围)
  3. 涵盖您能想到的所有边缘案例
  4. 涵盖各种无效输入值(也包括无输入值)
  5. 就是这样。