1

ASSERT_EXIT オブジェクトの作成中にセグ フォールトが発生し、次のような不適切なパラメーターでカスタム例外がスローされます。

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); }
};

回避策またはより良いアプローチはありますか?

ありがとう

4

1 に答える 1