0
我跟着一个程序教程,并在其中,老师有一堆函数返回一个布尔值来表示成功。它们写起来就像这样:什么时候单元测试合适?
bool SomeFunc()
{
//code....
return true;
}
这意味着您可以编写单元测试,期待这些功能真实,是表明全功能运行正常的一种方式。对我来说,这样的工作方式是,如果在该函数内很多不同点,你如果发生错误,有一堆为返回假的东西不同的检查:
bool SomeFunc()
{
if(!someThing)
return false;
return true;
}
但是,如果不是你只是有一堆的函数中断言做你的检查:
bool SomeFunc()
{
assert(someThing, "Error: thing not working");
return true;
}
然后会有一个理由还是单元测试,如果断言将正好赶上任何错误,这个功能呢?我能想到的唯一原因是,如果你想让你的单元测试在这些函数的发布模式下工作,那么你将添加断言和if语句(因为断言通常在发布模式下被关闭)。
不要只是测试真正的案件返回true。还要确保假案件返回false。做得好就像成功一样重要。 – user4581301
也是一件重要的事情。除了在上面的第一个例子中测试你的函数返回'true',单元测试可以测试函数是否被执行。一个典型的例子是返回void的函数,但是因此在一行中执行一些其他函数。 – dmi
鉴于'assert'通常在生产版本中是没有操作的,可能您想要引发异常。 – juanchopanza