複製測試類中的代碼是否「不好」?正如你所看到的,我將駕駛記錄添加到駕駛記錄中,以便有多種方法進行測試。將這個提取到一個私人幫手方法會更好嗎?還是更清楚地保持它的樣子?你在這種情況下做什麼?在JUnit測試中重複代碼
@Test
public void shouldRemoveAllDrivingRecords() {
Duration duration1 = new Duration(1, 30, 45);
Duration duration2 = new Duration(2, 50, 12);
DrivingRecord drivingRecord1 = new DrivingRecord(230.0, duration1, "This was a long trip");
DrivingRecord drivingRecord2 = new DrivingRecord(300.0, duration2, "This trip is even longer.");
drivingLog.addDrivingRecord(drivingRecord1);
drivingLog.addDrivingRecord(drivingRecord2);
drivingLog.removeAllDrivingLogs();
assertEquals(0, drivingLog.numberOfDrivingRecords());
}
@Test
public void shouldSumTheDistanceDriven() {
Duration duration1 = new Duration(1, 30, 45);
Duration duration2 = new Duration(2, 50, 12);
DrivingRecord drivingRecord1 = new DrivingRecord(230.0, duration1, "This was a long trip");
DrivingRecord drivingRecord2 = new DrivingRecord(300.0, duration2, "This trip is even longer.");
drivingLog.addDrivingRecord(drivingRecord1);
drivingLog.addDrivingRecord(drivingRecord2);
double expectedDistanceDriven = drivingRecord1.getDistance() + drivingRecord2.getDistance();
double totalDistanceDriven = drivingLog.getDistanceDriven();
assertEquals(expectedDistanceDriven, totalDistanceDriven, 0.1);
}