【发布时间】:2017-01-19 13:42:39
【问题描述】:
我在设计没有冗余的黑盒单元测试时遇到问题。
这是一个例子:
class A {
Float function operationA(int: aNumber){
if(aNumber > 0){
return aNumber * 10 + 5.2;
}
else if (aNumber < 0) {
return aNumber * 7 - 5.2;
}
else {
return aNumber * 78 + 9.3;
}
}
}
class B {
boolean status = true;
Float function opearationB(int: theNumber){
if(status == true){
return a.operationA(aNumber);
}
}
}
为了正确测试 A.operationA(),我必须编写至少三个单元测试(aNumber = 0、aNumber > 0 和 aNumber
现在假设我要测试 B.functionB,使用黑盒策略,我是否应该重新编写类似的三个单元测试(theNumber= 0、theNumber> 0 和theNumber
【问题讨论】:
-
为什么有黑盒测试要求?
-
class A的测试就足够了。class A是 B 类的依赖项。在测试 B 时,可以模拟/伪造 A 类,以便仅测试 B 的附加功能。无需重新测试已经涵盖的功能。 -
@dm03514 在这种情况下使用黑盒策略将允许单元测试在操作A 更改时失败并返回更改操作B 结果的结果。仅通过检查 operationA 是否已在 operationB 中调用(白盒策略)是无法实现的。
标签: unit-testing oop black-box-testing