科学的測定の結果をカプセル化するクラスがあります。私は最初から単体テストを構築していますが、単体テストの経験があまりなく、どの動作をどのようにテストするべきかわかりません。
私のクラスは次の3種類のことを行います。
- ファイル(または文字列)からそのインスタンス変数に測定データを読み込みます
- 測定データをファイルまたは文字列に書き込みます
- データに対して計算を実行します(例:一連の数値の平均を取得)
私の現在のアプローチは、既知の良好なサンプルデータファイルをtest
ディレクトリに含めることです。1つのテストでは、ファイルからデータを読み取り、それをクラスに渡し、いくつかの基本的な健全性チェックを満たしていることを確認します。別のテストでは、ファイルのファイル名をクラスに渡し、クラスにそれを読み取らせ、同じテストを実行します。テストの残りの部分では、ファイルからデータを読み取り、それをクラスに渡し、データ処理方法の結果が正しいことを確認します。
しかし、これはかなり絡み合っているようです。(3)をチェックするテストは、(1)の動作が正しいことを暗黙的に想定しています。そして、(1)のテストは、(3)のテストによって行われた広範なチェックから利益を得ることができます。単体テストの構造が不十分ですか、それともテストで特定のデータセットを使用する必要があるという事実の自然な結果ですか?