11
単体テストでは独自のメソッドを使用すべきではありませんか?
今日、私は「JUnitの基本」ビデオを見ていました。著者は、プログラムで特定のメソッドをテストするとき、プロセスで他のメソッドを使用しないでくださいと言いました。 具体的には、引数に名前と姓を使用するレコード作成メソッドをテストし、それらを使用して特定のテーブルにレコードを作成することについて話していました。しかし、彼は、このメソッドをテストする過程で、他のDAOメソッドを使用してデータベースにクエリを行って最終結果を確認するべきではないと主張しました(レコードが実際に正しいデータで作成されたことを確認するため)。彼は、そのために、データベースを照会して結果を確認するための追加のJDBCコードを作成する必要があると主張しました。 私は彼の主張の精神を理解していると思います:あるメソッドのテストケースが他のメソッド(この場合はDAOメソッド)の正確さに依存することは望ましくなく、これはあなた自身の検証を(再び)書くことによって達成されます/ supportingコード(より具体的で焦点が合っている必要があるため、よりシンプルなコード)。 それにもかかわらず、私の頭の中の声は、コードの重複、不必要な追加作業などの議論で抗議し始めました。他の方法をテストしながら、それらの方法の一部を使用しても大丈夫ですか?それらの1つが想定されていることを実行していない場合、独自のテストケースは失敗します。それを修正し、テストバッテリを再度実行できます。コードの複製(複製コードがいくぶん単純であったとしても)や無駄な努力は必要ありません。 私が書いたいくつかの最近のExcel - VBAアプリケーション(VBA用Rubberduckのおかげで適切にユニットテストされた)のため、私はこれについて強い気持ちがあります。 これについての洞察を共有していただけますか?