Извините, если это дубликат, но всякий раз, когда я пытаюсь найти его, я получаю результаты о «методе тестирования, который вызывает другие методы», который я не пытаюсь уточнить.
Студент здесь. Мне интересно, является ли тестирование метода с другим методом из того же класса на самом деле приемлемым подходом? По некоторым причинам, это дает мне это "отрывочное чувство". Поэтому я хотел убедиться.
Например:
@BeforeClass
public void setUp(){
appointment = new Appointment("CO","Live & Die",
"10/21/1999 18:00", "10/21/2099 00:00");
}
@Test
public void addAppointmentMethodIncrementsTheNumOfSavedAppointments(){
AppointmentBook appointmentBook = new AppointmentBook();
assertEquals(0, appointmentBook.currentNumOfAppointments());
appointmentBook.addAppointment(appointment);
assertEquals(1, appointmentBook.currentNumOfAppointments());
}
@Test
public void addAppointmentMethodSavesTheAppointmentInTheList(){
AppointmentBook appointmentBook = new AppointmentBook();
appointmentBook.addAppointment(appointment);
boolean result = appointmentBook.checkIfAppointmentAlreadyExists(appointment);
assertEquals(true,result);
}
Меня не слишком беспокоит первый метод тестирования, но я не уверен насчет второго.
- Можете ли вы сказать, что метод
addAppointment()
хорошо протестирован в этом
дело?
- или я действительно проверяю
checkIfAppointmentAlreadyExists()
метод?
- Может ли метод испытаний на самом деле проверить оба и все еще считаться приемлемой единицей
тест?
Вот код, который я пытаюсь проверить, для справки
public class AppointmentBook {
ArrayList<Appointment> allAppointments = null;
public AppointmentBook(){
allAppointments = new ArrayList<Appointment>();
}
public int currentNumOfAppointments() {
return this.allAppointments.size();
}
public void addAppointment(Appointment appointment) {
this.allAppointments.add(appointment);
}
public boolean checkIfAppointmentAlreadyExists(Appointment appointment) {
return this.allAppointments.contains(appointment);
}
}