1

使用 boost 测试库在单元测试中发生访问冲突时。

然后,测试被中止,并完成。

但是,我不想停止单元测试。只是我想获得例外或通知。

我如何能?

谢谢,请理解我的傻瓜英语(8(|)

编辑!

访问冲突错误不在测试程序中。它在目标程序中(被测试)。

例如。

目标程序

int target_function()
{
  char *source;

  strcpy(source, "access violation");

  return 0;
}

测试程序

BOOST_AUTO_TEST_CASE(access_violation)
{
  target_function();
  BOOST_CHECK(false);
}

编辑!!!

我在windows系统中使用visual studio 2005,在linux系统中使用g++。

编辑!!!我理解你的意见。但是,我不是目标程序程序员。所以,我无法修复它们。我只想继续我的测试程序。我做了很多测试用例。所以。每当我的测试程序遇到任何错误时,传递该错误并继续。

4

2 回答 2

2

当您发生访问冲突时,整个过程的完整性就会受到损害。没有理智的方法可以从这种情况中恢复过来。因此没有明智的方法继续测试。当进程自身损坏时,进程就会停止,无论单元测试框架是否愿意。

于 2010-11-17T03:13:16.227 回答
1

我相信用于尝试捕获访问冲突的方法是实现定义的。然而,不管你怎么剪,这都是个坏主意。如果您的程序崩溃和烧毁,您最好还是中止测试过程并在继续之前解决问题。

于 2010-11-17T04:09:47.263 回答