#java #junit
#java #юнит
Вопрос:
Итак, у меня есть это задание из моего класса, где нам нужно протестировать эти тестовые примеры с помощью JUnit. Я немного запутался в том, как проводить тестирование, так как профессор просто просматривает главу JUnit. Проблема, с которой я столкнулся, — это тестовый пример сохранения файлов назначений и загрузки файлов назначений. Кто-нибудь может помочь с тестированием? (инструкция на изображении ниже)
Метод из Appointment.java:
public void occursOn(int year, int month, int day){
System.out.println("Parent method.");
}
Appointment.java подкласс (OneTime.java ):
public void occursOn(int year, int month, int day){
LocalDate inputDate = LocalDate.of(year,month,day);
if (inputDate.isEqual(getDate())){
System.out.println("One-Time Appointment on (Note : " getDescription() ")");
}
// check if date is after OneTime appointment in the same month
if (inputDate.isAfter(getDate()) amp;amp; inputDate.getMonthValue() == getDate().getMonthValue()){
System.out.println("DATE IS AFTER appointment (Note: " getDescription() ")");
}
}
Appointment.java подкласс (Daily.java ):
public void occursOn(int year, int month, int day){
LocalDate inputDate = LocalDate.of(year,month,day);
if (inputDate.isAfter(getDate())){
System.out.println("AFTER DAILY appointment (Note : " getDescription() ")");
}
if(inputDate.isEqual(getDate())){
System.out.println("ON DAILY appointment (Note : " getDescription() ")");
}
}
MainTest.java (Класс тестирования JUnit):
import AppointmentPackage.Appointment;
import AppointmentPackage.Appointment;
import AppointmentPackage.Daily;
import AppointmentPackage.Monthly;
import AppointmentPackage.OneTime;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDate;
import java.util.ArrayList;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class MainTest {
@Test
void testOccursOn(){
ArrayList<Appointment> aptList = new ArrayList<Appointment>();
Appointment appt1 = new OneTime(LocalDate.parse("2020-10-15"), "Test OneTime");
Appointment appt2 = new Daily(LocalDate.parse("2020-10-15"), "Test Daily");
Appointment appt3 = new Monthly(LocalDate.parse("2020-10-15"), "Test Monthly");
aptList.add(appt1);
aptList.add(appt2);
aptList.add(appt3);
System.out.println("Check date: 2020-10-15");
for (Appointment a : aptList){
a.occursOn(2020,10,15);
}
System.out.println("nCheck date: 2020-11-15");
for (Appointment a : aptList){
a.occursOn(2020,11,15);
}
System.out.println("nCheck date: 2020-12-05");
for (Appointment a : aptList){
a.occursOn(2020,12,05);
}
System.out.println("nCheck date: 2020-09-15");
for (Appointment a : aptList){
a.occursOn(2020,9,15);
}
}
@Test
void testSaving() {
ArrayList<Appointment> saveList = new ArrayList<Appointment>();
Appointment appt1 = new OneTime(LocalDate.parse("2020-10-15"), "Test OneTime");
Appointment appt2 = new Daily(LocalDate.parse("2020-10-15"), "Test Daily");
Appointment appt3 = new Monthly(LocalDate.parse("2020-10-15"), "Test Monthly");
saveList.add(appt1);
saveList.add(appt2);
saveList.add(appt3);
// Saving to file
String fileName = "testSaveAppt.txt";
FileWriter fwriter= new FileWriter(fileName, true);
PrintWriter outputFile= new PrintWriter(fwriter);
for (Appointment a : saveList) {
outputFile.println(a.getType() " " a.getDate() " " a.getDescription());
}
outputFile.close();
}
@Test
void testLoad() throws FileNotFoundException {
// Loading from file
String fileName = "testSaveAppt.txt";
File myFile = new File(fileName);
Scanner inputFile = new Scanner(myFile);
ArrayList<Appointment> saveList = new ArrayList<Appointment>();
Appointment appt1 = new OneTime(LocalDate.parse("2020-10-15"), "Test OneTime");
Appointment appt2 = new Daily(LocalDate.parse("2020-10-15"), "Test Daily");
Appointment appt3 = new Monthly(LocalDate.parse("2020-10-15"), "Test Monthly");
saveList.add(appt1);
saveList.add(appt2);
saveList.add(appt3);
for (int i =0; i < saveList.size(); i ){
String strFromFile = saveList.get(i).getType() " " saveList.get(i).getDate() " " saveList.get(i).getDescription();
assertEquals(strFromFile, inputFile.nextLine());
}
inputFile.close();
}
}
Ответ №1:
Я бы посоветовал вам провести онлайн-исследование JUnit, это не сложная глава.
Но вот краткое резюме:
JUnit позволяет вам тестировать ваши методы (вы уже это знали), ключевой частью является использование методов Assert, чтобы проверить, соответствуют ли результаты этих методов тем, чего вы ждали.
Например :
assertTrue(method()); // If the method returns true, then the test has passed !, otherwise there is an error
Есть много разных утверждений, которые вы можете использовать, но опять же, посмотрите онлайн!