【发布时间】:2011-01-17 00:15:52
【问题描述】:
在软件开发人员职位的编程测试中提出了类似的问题。两天后,我仍然没有答案。
假设我们有一个函数,它接受两个浮点数作为输入,并且它没有任何副作用并且确定性地执行(也考虑一个单线程环境)。例如。 bool test(float arg1, float arg2);
为了测试它,假设我们使用任意大量的随机输入。该功能很少失败,但它失败了。假设我们用这段代码来测试:
//Set a,b
if(test(a,b)){
printf("Test passed\n");
} else {
printf("%f %f\n", a,b);
}
因此,在捕获打印的输入后,我们会像这样使用这些输入:
a = //Fill from the printf
b = //Fill from the printf
boolean a = test(a,b);
验证a的结果后,测试有效/通过。你有什么解释?我知道用于调试的 printf 可能很棘手,但是……这是我被问到的问题。
【问题讨论】:
标签: c unit-testing methods call