【发布时间】:2011-09-07 17:55:27
【问题描述】:
我正在尝试使用 TDD 进行编码练习。我想问我是否应该使用函数中不应该发生的数据进行测试,但这些数据可能会破坏您的程序。
这是一个简单的例子来说明我的要求:
具有一个 INT 参数的 ROBOT 函数。在此函数中,我知道有效范围仅为 0-100。如果使用-1, 101,函数会中断。
function ROBOT (int num){
...
...
...
return result;
}
所以我决定为这个功能做一些自动化测试用例...
1. function ROBOT with input argument 0
2. function ROBOT with input argument 1
3. function ROBOT with input argument 10
4. function ROBOT with input argument 100
但是我应该为这个 ROBOT 函数编写带有输入参数 -1 还是 101 的测试用例,如果我会在我的另一个调用函数 ROBOT 的函数中保护它???
5. function ROBOT with input argument -1
6. function ROBOT with input argument 101
我不知道是否有必要,因为我认为测试-1和101是多余的。如果真的需要覆盖所有情况,我必须编写更多代码来保护-1和101。
那么在TDD的通用实践中,你会在-1和101上写测试用例吗???
【问题讨论】:
-
与其说是 TDD 的常见做法,但定义了特定的功能测试技术来处理范围和边界,例如您的示例中的情况。详情见我的回答。
-
您的语言是否有可访问性修饰符?如果
ROBOT()是私有的,你不应该测试它,你应该只测试公共函数/方法。 -
我对标题做了一些改动,因为这个问题的答案对所有测试方法都有用,而不仅仅是 TDD。如果不准确请回滚。
标签: unit-testing testing tdd