1

我试图弄清楚如何正确编写用于数字转换的单元测试以具有 100% 的测试覆盖率并涵盖所有可能性。

比方说,我有一个将整数转换为罗马数字的函数。它的工作范围是 1 到 3999:

function integerToRoman(integer) { ... }

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

4

1 回答 1

1

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

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

而已。

于 2012-09-11T21:00:22.170 回答