ホームページ  >  に質問  >  本文

単体テスト - C++ テストのコード構成に関連するいくつかの問題

私は初心者の C プログラマーです。ほとんどの時間は JavaScript を使用していました。今は宿題が必要なため、C でプロジェクトを書いています。開発環境は Xcode です。自分でテストをしたいのですが、何も持っていません。私の知る限り、これを読んだ後、私はキャッチ テスト フレームワークを使用することにしました。

以前に小さな C ジョブを書いていたとき、main 関数内で直接 cout<< を実行して送信する前に削除するか、新しい cpp ファイルを作成して main 関数を追加してから main 関数を追加しました。プロジェクト内で名前を一時的に変更し(通常は main 関数名を main00 などに変更します)、XCode で実行をクリックして一時的にテストします。主に特定の場所の不確実性をテストし、テストが完了したら元に戻します。完成しました。

しかし、私は上記の方法は本当に愚かであり、すべての先輩を笑わせると思います。

現在のプロジェクト ディレクトリは次のようになります (これは c で minisql を実装するジョブです):

現時点では、各ファイルには実際にはコンテンツがありません。各フォルダーはモジュールを表します。各モジュール間の関係は次のとおりです:

1 つの部分を書いて 1 つの部分をテストする予定です (たとえば、最初に BufferManager を書きます)。テストで問題がなければ、次の部分を書き続けます。

それでは、テスト ファイルの構成について次のような質問があります:

テスト ファイルを対応するモジュール ファイル ディレクトリに置く必要がありますか?それとも別のテストファイルがあるのでしょうか?

各モジュールには個別のテスト ファイルが必要ですか?

さらに、テスト ファイルを 2 つ書いた場合、#define CATCH_CONFIG_MAIN をコメント アウトしても、他のすべてのテスト ファイルをコメント アウトしないと正常に実行できないことがわかりました。

また、エントリ ファイル (NewSQL.cpp に main 関数があります) を作成した後、これらのテスト ファイルをどのように実行すればよいでしょうか?まだコメントしたりコメントを解除したりしていますか....

私の質問は少しばかげているような気がしますが、正しいテストの書き方と使い方を知りたいのです。インターネット上であまり的を絞った答えが見つからなかったので、ここに質問しました。 、ありがとう~

(もし何かがうまく行われていないと思われる場合は、ご指摘ください。真剣に修正しますが、個人を攻撃しないでください。あなたの回答が参考として非常に価値がある場合は、プライベートメッセージも送ります。ある程度の赤封筒報酬が必要な場合は学生パーティー、気持ちを伝えましょう)

添付のキャッチポータル: https://github.com/philsquare...

ringa_leeringa_lee2669日前822

全員に返信(1)返信します

  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:40:53

    テストファイルを対応するモジュールファイルディレクトリに置く必要がありますか?それとも別のテストファイルがあるのでしょうか?

    各モジュールに個別のテストファイルが必要ですか?

    さらに、テストファイルを2つ書いた場合、 #define
    CATCH_CONFIG_MAIN をコメントアウトしても、他のテストファイルをすべてコメントアウトしないと正常に実行できないことがわかりました。

    また、エントリーファイル(NewSQL.cppにmain関数があります)を書いた後、これらのテストファイルをどのように実行すればよいでしょうか?まだコメントしたりコメントを解除したりしていますか....

    テストコードとプロダクションコードは分離され、命名において関連付けられています
    例えば、クラスAのテストクラスはAUnitTest、ATest、またはAUTと呼ばれます

    モジュールごとに個別のテストファイル

    テストファイルには独自のエントリファイルがあります

    重要なのは、プロジェクトの構成です。テスト プロジェクトは製品コードに依存しますが、製品コードはテスト コードに依存しません。
    2 人は 2 つの実行可能プログラムを生成できるはずです。このような目標に従ってプロジェクトを構成します

    返事
    0
  • キャンセル返事