1

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()' として定義されています

解像度:

  1. すべての派生デストラクタを noexcept(false) としてマークします。ただし、HippoMock::MockRepository がデストラクタから例外をスローするため、これは実現可能ではなく、クラッシュを引き起こす可能性があります。
  2. Google テストの testing::Test::~Test() noexcept(false) を宣言します。しかし、私は本当に結果を知りません.また、Google Mockを使用した新しいコード.

レガシー コードには多数の HippoMocks コードが含まれているため、すべてを Google Mock に置き換えることは現実的ではないことに注意してください。また、新しいコードは google モックを使用しています。

gtest testing::Test::~Test() noexcept(false) を定義するとどうなりますか?

4

1 に答える 1