2012-02-20 11 views
0

私はこの質問を今日今日、Repeating code in JUnit testsに見ました。あなたが始めているときにこのコードをどのように書いていますか?メソッドaddDrivingRecord(...)があることがわかります。最初に書き込みを開始したときにこのメソッドが存在しないため、そのテストを行い、正しく動作することを確認してからsetUp()メソッドを実行するか、addDrivingRecord(...)メソッドを記述してから@Beforeにリファクタリングするまで待機しますか?必要に応じてさらに説明します。JUnitで@Beforeメソッドを使用する

+0

だからあなたの質問は、または私が最初にaddDrivingRecordをリファクタリングし、それを実装する必要があります「私は試験方法でaddDrivingRecordを使用する必要があります/ addDrivingRecordを実装する/それは/リファクタリングを動作することを確認」されますか? – helios

+0

私は確信していませんが、あなたの質問が方法論に関するものであれば、それをtdd(またはテスト駆動開発)として取り直すことができます。 – helios

+0

新しいテストクラスを書く場合は、とにかくリファクタリングすることを知っているときに何かを書くのはなぜですか?私はあなたの質問を正しく理解しているかどうかはわかりませんが、新しいテストを書くか古いものをリファクタリングするかにかかわらず、テスト結果は同じでなければなりません。だからすべてのリファクタリングを行い、次にテストを行います。 – steffinchen

答えて

4

私は、あなたがしなければならない場合は、あなたが求めて十分に理解した場合:

  1. 使用addDrivingRecord試験方法
  2. で、それは
を@Beforeする
  • リファクタリングaddDrivingRecord(それが動作)緑行くことを確認

    または

    1. addD最初の使用方法、そして実装し、行く:それは私が最初のオプションのために行く必要がありますあなたの質問なら

    (それが動作)が緑色になることを確認

  • を@Beforeするための試験方法
  • リファクタリングaddDrivingRecordでrivingRecord緑、あなたのテストをリファクタリングしてください。

    二つの理由理由:

    1. あなたはテストメソッドを書きますので、あなたは、一度に一つのことを実装/テストする必要があります。それからあなたは緑にします。それでは、別の方法を書いて、コードを@でリファクタリングできるようにしてください。前に

    2. よくある実践は、よくあることがあることを認識したときにのみ、それらを@Beforeに移動することです。そのようにして、あなたは初期設定で肉体を強制しません。さらに、別のテストに非常に異なる@Beforeメソッドが必要であることがわかった場合、おそらく別のテストクラスに属している可能性があります。

  • 関連する問題