2016-11-09 6 views
1

私は複数のテストクラスにそれぞれSetUp()とTearDown()を持っています。GTEST:SetUpとTearDownの前と後にそれぞれを確認してください。

RUN_ALL_TEST()の後にテストケースを実行するためのシーケンスがわかりません。

最初のSetUpが呼び出される前にサービスを開始し、最後のTearDownが呼び出された後にサービスを停止したいと考えています。

どのように達成できますか? 例を参考にしてください。あなたはsonethingを確保するためにstd::call_onceを使用することができ

おかげ

答えて

0

は一度だけ呼び出されます。

1

最初に観察されるのは、これらが「サービス」を実行する必要があるため、単体テストではないということです。外部サービスを必要とせずにテストを実行できるように、アプリケーションの再設計を検討することをお勧めします。 1つのアプローチは、抽象クラスとGoogleモックを使用することです。

通常のTearDownに耐えられる外部サービスを使用する場合の問題は、次のテストでクリーンな環境が見つかるようにすることです。これは、以前のテストで設定した状態でテストを破ることができます。テスト・フィクスチャごとに一度だけサービスを開始できるようになります

あなたは本当に、長寿命の外部サービスのルートを下るgtest advanced guideSetUpTestCaseTearDownTestCaseを読みたい場合は

、。

グローバルセットアップとティアダウン(詳細ガイドで検索)を行うことができる、さらに危険なEnvironmentクラスがあります。

また、テストは脆く、デバッグが難しいでしょう。私はこのアプローチを再考することを提案する。

関連する問題