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 の代替品を検討する必要がありますか?
ありがとう、
バリー