尝试ASSERT_EXIT对象创建时遇到seg错误,这会引发错误参数的自定义异常,如下所示:
ASSERT_EXIT( MyObj(1,2,3) , ::testing::ExitedWithCode(1), "");
正在创建的类是这样的:
class MyObj
{
public:
MyObj(int a, int b, int c) { if( a < b ) throw MyException("Error"); }
}
自定义异常如下:
class MyException : public std::invalid_argument
{
public:
MyException(std::string s) { /* do some logging */ exit(1); }
};
有解决方法还是更好的方法?
由于
答案 0 :(得分:1)
如果您希望未处理的异常必须终止您的应用程序(例如从nothrow成员中抛出或明确地调用exit),请考虑ASSERT_DEATH 如果您有正常的异常,则为ASSERT_THROW