Linux でバックグラウンド サービスとして実行するプログラムを作成しています。私はC++で書いており、イベントループにglibmmを使用しています。
プログラムが持つ唯一のユーザー インターフェイスは、D-Bus サービスです。
Google Test を使用していくつかのテストを書きたいと思います。私が計画しているのは、プログラム自体が D-Bus サービスをインスタンス化する一方で、テスト コードも D-Bus クライアントをインスタンス化し、D-Bus 呼び出しを介してプログラムでアクションを開始することです。
私が念頭に置いているテスト ケースは、ほとんどの場合、「D-Bus メソッドを呼び出し、アサートを使用して、特定の引数でメソッドが呼び出されることを確認する」のようなものです。テストの重要な結果の 1 つは、テストがクラッシュしないことを確認することでもあります。
プログラムとテストの書き方に関する重大なオプションが表示されます。たとえば、理論的には、イベント ループを main() で 1 回作成するか、各テスト ケースで個別に作成することができます。一度だけ作成された場合でも、理論的には継続的に実行するか、各テスト ケースで開始および停止することができます。例をグーグルで検索してみましたが、Glib の代わりに Qt が使用されているものしか見つかりませんでした。それが大きな違いを生むかどうかはわかりません。
このようなケースについて、既存の知恵はありますか? 試す価値のあるものとそうでないものは何ですか?それとも、Google Test を本来の目的ではないものに使用するつもりですか?