2

クラス Car をテストし、座席数を返すメソッドを作成したい場合。car.addSeat(new Seat())必要がない場合、シートに実際にデータを設定せずに、複数回書き込むだけで十分ですか? メソッドは次のようになります。

public int numberOfSeats() {
    return seats.size();
}

座席は座席のリストであると仮定します。それとも、必要ないのにシートにデータを記入しますか?テストを書く労力を最小限に抑えるよう常に心がけるべきでしょうか?

4

2 に答える 2

3

モッキングの使用を検討する必要があります。モックを使用すると、テストされていないオブジェクトが期待値を使用してどのように動作するかを制御できます。

例 when(seat.getSomeProperty()).thenReturn("some value")

ただし、値が必要ない場合は、コードから期待を除外することができます。このようにして、テストを書き直すことなくコードを更新でき、テストの保守がはるかに簡単になります。

チェックアウト Mockito https://code.google.com/p/mockito/

于 2013-04-08T15:42:34.723 に答える
0

私は2つのアプローチを念頭に置いています。

  1. 何をテストしたいかを正確に定義すると、どのデータを入力する必要があるかが正確にわかります。あなたの例では、席を埋める必要はありません。

  2. numberOfSeats 以外のテストを行う場合は、setUp と TeaDown を使用して、テストごとに再利用可能なデータ セットを作成できます。JUnit は、各テストの前に setUp を実行し、その後、tearDown を実行します。

于 2013-04-08T15:47:57.817 に答える