C++ 11 を使用した testing::Test of google テストから派生したテスト ケースをコンパイルしているときに、以下のエラーが発生します。派生クラスに HippoMock::MockRepository メンバーがある場合、以下のエラーがスローされます。
virtual MyTestClass::~MyTestClass noexcept(false) のスロー指定子が緩い 'virtual testing::Test::~Test() noexcept(true)' を上書きするエラー
HippoMock::MockRespository デストラクタが例外をスローし、noexcept(false) として定義されているため、このエラーが報告されていますが、Google テスト デストラクタは 'virtual testing::Test::~Test()' として定義されています
解像度:
- すべての派生デストラクタを noexcept(false) としてマークします。ただし、HippoMock::MockRepository がデストラクタから例外をスローするため、これは実現可能ではなく、クラッシュを引き起こす可能性があります。
- Google テストの testing::Test::~Test() noexcept(false) を宣言します。しかし、私は本当に結果を知りません.また、Google Mockを使用した新しいコード.
レガシー コードには多数の HippoMocks コードが含まれているため、すべてを Google Mock に置き換えることは現実的ではないことに注意してください。また、新しいコードは google モックを使用しています。
gtest testing::Test::~Test() noexcept(false) を定義するとどうなりますか?