【解決方法】C++ でコードの単体テストを作成する最良の方法


こんにちは、プログラムが指定された入力に対して適切な機能を備えた方法で記述されていない場合、単体テストまたは結合テストはどのように記述すればよいでしょうか。つまり、単体テストの最後に比較される出力は次のとおりです。関数に含まれていない場合、取得するはずの特定の出力の関数にすべてが含まれるようにコードを変更する必要がありますか?

私が試したこと:

書いてみましたが、テストするはずの値が特定の入力を受け取る特定の関数に含まれていないため、何を呼び出せばよいのか分かりません

解決策 1

適切な方法は、それをブラック ボックスとして扱い、適切な入力を提供し、期待した出力が生成されるかどうかを確認することです。

解決策 2

テストはそれ自体が芸術ですが、実際のリリース機能を変更せずにテストするのが最善の方法ですが、テストの場合は、もう少し明示的に記述する必要があることがよくあります。

関数をテストするときは、すべてをテストするのが合理的です 可能 したがって、無効な値やエラーが発生しやすい値も含めてください。 整数の負の値、null、MAX_INT と同様です。
文字列入力の場合は、空の文字列、NULL 文字列、長い値も必要です。

テスト カバレッジや統合テストなどの詳細については、「テスト駆動開発」についてお読みください。

解決策 3

int count(vector v) {
v.size() を返します。

コメント

タイトルとURLをコピーしました