cppunit ユニットテストを dll としてビルドし、それを TestPlugInRunnerd.exe にロードして結果を表示します。私たちは独自のモックを作成していますが、gmock などのモック フレームワークの使用を開始したいと考えています。
私は gmock をダウンロードし、問題なくリンクしました。gmock を使用してモックを作成しましたが、正常にコンパイルされます。しかし、その後、gmock faq で次のことを読みました。
テスト フレームワークとして Google Test 以外のもの (CppUnit や CxxTest など) を使用する場合は、前のセクションの main() 関数を次のように変更します。
int main(int argc, char** argv) {
// 次の行により、Google Mock は失敗時に例外をスローします。
// これは、テスト フレームワークによってテストの失敗として解釈されます。
::testing::GTEST_FLAG(throw_on_failure) = true;
::testing::InitGoogleMock(&argc, argv);
... テスト フレームワークが必要とするものは何でも ...
}
このアプローチには問題があります。Google Mock がモック オブジェクトのデストラクタから例外をスローすることがあります。一部のコンパイラでは、これによりテスト プログラムがクラッシュすることがあります。テストが失敗したことはまだわかりますが、正常な失敗ではありません。
私は明らかにメインを持っていません。gmock を dll で動作させるにはどうすればよいですか? gmock の代替品を検討する必要がありますか?
ありがとう、
バリー