gpt4 book ai didi

unit-testing - 我是否应该使用不应在函数中传递的数据(无效输入)进行单元测试?

转载 作者:行者123 更新时间:2023-11-28 19:45:22 30 4
gpt4 key购买 nike

我正在尝试将 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 函数的其他函数中保护它,我应该为这个 ROBOT 函数编写输入参数为 -1 还是 101 的测试用例???

5. function ROBOT with input argument -1
6. function ROBOT with input argument 101

我不知道是否有必要,因为我认为测试 -1 和 101 是多余的。如果真的有必要覆盖所有情况,我必须编写更多代码来保护 -1 和 101。

所以在TDD的Common实践中,你会在-1和101上写测试用例吗???

最佳答案

是的,您应该测试那些无效的输入。但是,如果您的语言具有可访问性修饰符并且 ROBOT() 是私有(private)的,那么您不应该测试它;您应该只测试公共(public)功能/方法。


功能测试技术称为边界值分析

如果你的范围是 0-100,你的边界值是 0 和 100。你应该测试,至少:

  • 低于边界值
  • 边界值
  • 高于边界值

在这种情况下:

-1,0,1,
99,100,101

您假设低于 -1 到 -infinity 的一切都表现相同,1-99 之间的一切表现相同,而高于 101 的一切表现相同。这称为等价划分。边界值之外和边界值之间的范围称为分区,您假设它们将具有等效行为。

您应该始终考虑使用 -1 作为测试用例,以确保如果参数不是强类型的,负数和文本字符串不会发生任何有趣的事情。

关于unit-testing - 我是否应该使用不应在函数中传递的数据(无效输入)进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7338334/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com