C / C ++アプリケーションをテストしています。ほとんどのメソッドで、CppUTestを使用して単体テストを作成できました。しかし、そうでないものもいくつかあります。これらのメソッドもテストするために、統合/エンドツーエンドのテストを作成したいと思います。何をテストしたいのか
正しい出力ファイルが生成されます
貴重な引数については、適切なエラーメッセージが出力されます(これはコマンドラインツールです)
正しい出力メッセージを表示します
私の質問は、このためのツールがあるかどうか、またはアプリケーションを呼び出したり、出力をキャプチャしたりするためのスクリプトを作成する必要があるかどうかです。はいの場合、これらのスクリプトを開始する方法は?CppUtestからそれらを呼び出しますか?
正しい出力をテストするいくつかの方法を知っています。
CMakeとCTestを使用する場合は、CTestを使用して、プログラムの出力を期待される出力と比較できます。(画面出力は通常のように)テキスト出力に対してのみ機能し、ランダムな数の時刻/日付などを出力する場合は機能しません。CMakeマニュエルでadd_test_output_check()を探します。
プログラムがハードコードされてstdoutに書き込まない場合は、std :: ostringstreamに合格し、その後、好みの単体テストフレームワークを使用して文字列の内容をテストできます。
最後になりましたが、dup2()を使用して、stdoutおよびstderrの他のファイル記述子を定義し、テストを実行して、最後にファイルの内容を確認することができます。
出力ファイルについては、参照出力ファイルを作成してから、このファイルの内容をテストによって生成されたファイルと比較する必要があると思います。両方のファイルをロードし、データに対してmemcmp()を実行するテスト関数を記述します。 。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加