2017-07-17 43 views
1

C++ 11のgoogleテストのテストから派生したテストケースをコンパイルする際に、以下のエラーが表示されます。派生クラスにHippoMock :: MockRepositoryメンバーがある場合、以下のエラーがスローされます。仮想MyTestClass ::〜MyTestClass noexcept(false)のエラーがオーバーライド '仮想テスト::テスト::〜テスト()(真) noexcept' のC++でHippoMocksメンバを使用したgtest派生クラスのコンパイルエラーが発生しました11

緩いスロー指定子は

は、このエラーがあります:: MockRespositoryデストラクタが例外をスローし、(偽)noexceptとして定義HippoMock以降に報告、しかしとして定義されたテストデストラクタGoogleの仮想テストを::テスト::〜テスト() '

解像度:

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

レガシーコードにはHippoMocksコードが多数含まれているため、すべてをGoogle Mockで置き換えることはできません。また、新しいコードはGoogleの模擬を使用しています。

ただ知りたい、 gtest testing :: Test ::〜Test(noexcept(false))の定義の結果は何ですか?

+0

デストラクタは、フレームワーククラスのデストラクタをスローするはずがありません。デストラクタを投げることは、分離されたよく制御されたいくつかのケースではおそらく有用かもしれませんが、これはそれらの1つではありません。 HippoMockはgoogletestではなく固定する必要があります。 –

答えて