我有点困惑我应该在单元测试上投入多少。
假设我有一个简单的功能,例如:
appendRepeats(StringBuilder strB, char c, int repeats)
[此函数会将 char c 重复次数附加到 strB。例如:
strB = "hello"
c = "h"
repeats = 5
// result
strB = "hellohhhhh"
]
对于这个功能的单元测试,我觉得已经有很多可能性了:
AppendRepeats_ZeroRepeats_DontAppend
AppendRepeats_NegativeRepeats_DontAppend
AppendRepeats_PositiveRepeats_Append
AppendRepeats_NullStrBZeroRepeats_DontAppend
AppendRepeats_NullStrBNegativeRepeats_DontAppend
AppendRepeats_NullStrBPositiveRepeats_Append
AppendRepeats_EmptyStrBZeroRepeats_DontAppend
AppendRepeats_EmptyStrBNegativeRepeats_DontAppend
AppendRepeats_EmptyStrBPositiveRepeats_Append
等等等等。 strB 可以为 null 或为空或具有值。c 可以为 null 或具有值 repeats 可以为负数、正数或零
那似乎已经有 3 * 2 * 3 = 18 个测试方法。如果这些函数还需要测试特殊字符、Integer.MIN_VALUE、Integer.MAX_VALUE 等,那么其他函数可能会更多。我的停止线应该是什么?出于我自己的程序的目的,我是否应该假设:strB 只能为空或具有值 c 具有值 repeats 只能为空或正
抱歉打扰了。只是真的很困惑我应该如何偏执地进行一般的单元测试。我应该留在我的假设范围内还是那是不好的做法,我应该为每个潜在案例都有一个方法,在这种情况下,单元测试方法的数量将以指数方式快速扩展。
开满天机
慕姐8265434
回首忆惘然
森林海
相关分类