2
我有一个问题设计黑盒单元测试没有冗余。单元测试策略:使用黑盒冗余
下面是一个例子:
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
< 0) 。
现在让我们说,我想测试B.functionB,采用黑盒的策略,我应该重新写的类似三个单元测试(theNumber
= 0,theNumber
> 0和theNumber
< 0)?在这种情况下,每次使用方法时,我都必须创建大量测试。操作...
为什么会出现黑匣子测试要求? – dm03514
'A类'的测试就足够了。 'A类是B类的依赖关系。当测试B时,A类可以被嘲弄/伪造,以便仅测试B的附加功能。无需重新测试已经涵盖的功能。 – Nkosi
@ dm03514在这种情况下使用黑盒策略将允许单元测试在操作A改变时失败,并返回一个结果来改变操作B的结果。这只能通过检查operationB在operationB中调用(白盒策略)来实现。 –