几天前,我接受了实习面试,并且我被要求编写一个函数来测试另一个函数(将两个数字加在一起)是否有效。我的答案与此类似:
bool addTest(double a, double b){
if((a+b) == addFunction(a, b))
return true;
else
return false;
}
但是,我的答案似乎并没有给他们留下深刻的印象。我怎么能这样做?
答案 0 :(得分:0)
测试用例应编写参数,并将预期答案硬编码到其中以消除任何不确定性。
bool addTest(){
//2+2=4
if (addfunction(2,2) !=4){
return false;
}
//1.66666+7.9=9.56666
if (addFunction(1.66666, 7.9) != 9.56666){
return false;
}
//0+0=0
if (addFunction(0,0) != 0){
return false;
}
//all tests passed
return true;
}
如果稍后在开发中发现错误,则应将导致错误的条件添加到测试功能中。例如,有一天你试图添加两个负数,只是发现它们返回一个正数。为此添加测试用例将确保在将来函数发生更改时再次捕获此错误。
//addFunction(-8, -1) //Oops! We return positive 9! Let's fix the bug and make a new test
//-8 + -1 = -9
if (addFunction(-8, -1) != -9){
return false;
}
添加验证两个值不会产生错误答案的测试用例也没有什么坏处,尽管这很难涵盖所有测试用例。
//-8 + -1 = -9
if (addFunction(-8, -1) == 9){
return false;
}