使用boost测试库在单元测试中发生访问冲突时。
然后,测试中止,并完成。
但是,我不想停止单元测试。我想要获得例外或通知。
我该怎么做?
谢谢你,请低估我的傻瓜英语(8(|)
EDIT!
访问冲突错误不在测试程序中。它在目标程序中(待测试)。
例如,。
目标计划
int target_function()
{
char *source;
strcpy(source, "access violation");
return 0;
}
测试程序
BOOST_AUTO_TEST_CASE(access_violation)
{
target_function();
BOOST_CHECK(false);
}
EDIT !!!
我在windows系统中使用visual studio 2005,在linux系统中使用g ++。
EDIT !!! 我理解你的意见。但是,我不是目标程序程序员。所以,我无法修复它们。 我只想继续我的测试计划。我做了很多测试用例。所以。每当我的测试程序遇到任何错误时,都会传递该错误并继续。
答案 0 :(得分:2)
当您遇到访问冲突时,整个流程的完整性会受到影响。没有理智的方法可以从这种状况中恢复过来;因此没有理智的方式来继续测试。当这个过程破坏了自己的时候,无论单元测试框架是否愿意,这个过程都会失败。
答案 1 :(得分:1)
我认为用于尝试捕获访问冲突的方法是实现定义的。但是,无论如何,这都是一个坏主意。如果您的程序崩溃并烧毁,您最好还是中止测试过程,并在继续之前解决问题。