Сейчас я работаю над школьным заданием и с трудом справляюсь с тестированием. По какой-то причине модульные тесты работают нормально при индивидуальном запуске, но не при совместном запуске. Я знаю, что это как-то связано с тем, что я делюсь объектом между ними, хотя мне не следует основываться на моих предыдущих поисках, но я не могу хоть убей понять, что нужно изменить, чтобы решить эту проблему. Ниже приведен код как для класса AppointmentService, так и для класса AppointmentServiceTest. Буду очень признателен за любую помощь, так как я застрял на этом уже некоторое время и знаю, что это, вероятно, сразу же увидит кто-то другой.
Класс AppointmentServiceTest
import static org.junit.jupiter.api.Assertions.*;
import java.text.ParseException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import main.Appointment;
import main.AppointmentService;
class AppointmentServiceTest {
private static AppointmentService appointmentService;
@BeforeAll
static void setUp() {
appointmentService = AppointmentService.getService();
}
@Test
void testAddAppointmentSuccess() throws ParseException {
Appointment appointment = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment));
Appointment cachedAppointment = appointmentService.getAppointment(appointment.getAppointmentId());
assertTrue(cachedAppointment != null);
assertTrue(cachedAppointment.getAppointmentId().equals("123456"));
assertTrue(cachedAppointment.getAppointmentDate().equals("2022-10-01"));
assertTrue(cachedAppointment.getAppointmentDescription().equals("Appointment Description String"));
}
@Test
void testAddMultipleAppointmentsSuccess() throws ParseException {
Appointment appointment1 = new Appointment("123456", "2022-10-01", "Appointment Description String");
Appointment appointment2 = new Appointment("1234567", "2022-10-02", "Appointment Description String2");
assertTrue(appointmentService.addAppointment(appointment1));
Appointment cachedAppointment1 = appointmentService.getAppointment(appointment1.getAppointmentId());
assertTrue(cachedAppointment1 != null);
assertTrue(cachedAppointment1.getAppointmentId().equals("123456"));
assertTrue(cachedAppointment1.getAppointmentDate().equals("2022-10-01"));
assertTrue(cachedAppointment1.getAppointmentDescription().equals("Appointment Description String"));
assertTrue(appointmentService.addAppointment(appointment2));
Appointment cachedAppointment2 = appointmentService.getAppointment(appointment1.getAppointmentId());
assertTrue(cachedAppointment2 != null);
assertTrue(cachedAppointment2.getAppointmentId().equals("1234567"));
assertTrue(cachedAppointment2.getAppointmentDate().equals("2022-10-02"));
assertTrue(cachedAppointment2.getAppointmentDescription().equals("Appointment Description String2"));
}
@Test
void testAddAppoitnmentDuplicateIdFail() throws ParseException {
Appointment appointment1 = new Appointment("123456", "2022-10-01", "Appointment Description String");
Appointment appointment2 = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment1));
assertFalse(appointmentService.addAppointment(appointment2));
}
@Test
void testGetAppointmentAndUpdateSuccess() throws ParseException {
Appointment appointment = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment));
Appointment updatedAppointment = appointmentService.getAppointment(appointment.getAppointmentId());
updatedAppointment.setAppointmentDate("2022-10-02");
updatedAppointment.setAppointmentDescription("New Description");
updatedAppointment = appointmentService.getAppointment(updatedAppointment.getAppointmentId());
assertTrue(updatedAppointment.getAppointmentDescription().equals("New Description"));
assertTrue(updatedAppointment.getAppointmentDate().equals("2022-10-02"));
}
@Test
void testGetAppointmentAndDeleteSuccess() throws ParseException {
Appointment appointment = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment));
appointment = appointmentService.getAppointment(appointment.getAppointmentId());
assertTrue(appointment != null);
assertTrue(appointmentService.deleteAppointment(appointment.getAppointmentId()));
assertTrue(appointmentService.getAppointment(appointment.getAppointmentId()) == null);
}
@Test
void testDeleteInvalidAppointmentFail() {
String invalidAppointmentIdString = "123";
assertFalse(appointmentService.deleteAppointment(invalidAppointmentIdString));
}
И класс AppointmentService
import java.util.HashMap;
import java.util.Map;
public class AppointmentService {
private static AppointmentService reference = new AppointmentService();
private final Map appointmentList;
AppointmentService() {
this.appointmentList = new HashMap();
}
public static AppointmentService getService() {
return reference;
}
public boolean addAppointment(Appointment appointment) {
boolean isSuccess = false;
if(!appointmentList.containsKey(appointment.getAppointmentId())) {
appointmentList.put(appointment.getAppointmentId(), appointment);
isSuccess = true;
}
return isSuccess;
}
public boolean deleteAppointment(String appointmentId) {
return appointmentList.remove(appointmentId) != null;
}
public Appointment getAppointment(String appointmentId) {
return appointmentList.get(appointmentId);
}
}
Подробнее здесь: https://stackoverflow.com/questions/694 ... n-together
Тесты Junit проходят по отдельности, но не выполняются вместе ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1764319355
Anonymous
Сейчас я работаю над школьным заданием и с трудом справляюсь с тестированием. По какой-то причине модульные тесты работают нормально при индивидуальном запуске, но не при совместном запуске. Я знаю, что это как-то связано с тем, что я делюсь объектом между ними, хотя мне не следует основываться на моих предыдущих поисках, но я не могу хоть убей понять, что нужно изменить, чтобы решить эту проблему. Ниже приведен код как для класса AppointmentService, так и для класса AppointmentServiceTest. Буду очень признателен за любую помощь, так как я застрял на этом уже некоторое время и знаю, что это, вероятно, сразу же увидит кто-то другой.
Класс AppointmentServiceTest
import static org.junit.jupiter.api.Assertions.*;
import java.text.ParseException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import main.Appointment;
import main.AppointmentService;
class AppointmentServiceTest {
private static AppointmentService appointmentService;
@BeforeAll
static void setUp() {
appointmentService = AppointmentService.getService();
}
@Test
void testAddAppointmentSuccess() throws ParseException {
Appointment appointment = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment));
Appointment cachedAppointment = appointmentService.getAppointment(appointment.getAppointmentId());
assertTrue(cachedAppointment != null);
assertTrue(cachedAppointment.getAppointmentId().equals("123456"));
assertTrue(cachedAppointment.getAppointmentDate().equals("2022-10-01"));
assertTrue(cachedAppointment.getAppointmentDescription().equals("Appointment Description String"));
}
@Test
void testAddMultipleAppointmentsSuccess() throws ParseException {
Appointment appointment1 = new Appointment("123456", "2022-10-01", "Appointment Description String");
Appointment appointment2 = new Appointment("1234567", "2022-10-02", "Appointment Description String2");
assertTrue(appointmentService.addAppointment(appointment1));
Appointment cachedAppointment1 = appointmentService.getAppointment(appointment1.getAppointmentId());
assertTrue(cachedAppointment1 != null);
assertTrue(cachedAppointment1.getAppointmentId().equals("123456"));
assertTrue(cachedAppointment1.getAppointmentDate().equals("2022-10-01"));
assertTrue(cachedAppointment1.getAppointmentDescription().equals("Appointment Description String"));
assertTrue(appointmentService.addAppointment(appointment2));
Appointment cachedAppointment2 = appointmentService.getAppointment(appointment1.getAppointmentId());
assertTrue(cachedAppointment2 != null);
assertTrue(cachedAppointment2.getAppointmentId().equals("1234567"));
assertTrue(cachedAppointment2.getAppointmentDate().equals("2022-10-02"));
assertTrue(cachedAppointment2.getAppointmentDescription().equals("Appointment Description String2"));
}
@Test
void testAddAppoitnmentDuplicateIdFail() throws ParseException {
Appointment appointment1 = new Appointment("123456", "2022-10-01", "Appointment Description String");
Appointment appointment2 = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment1));
assertFalse(appointmentService.addAppointment(appointment2));
}
@Test
void testGetAppointmentAndUpdateSuccess() throws ParseException {
Appointment appointment = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment));
Appointment updatedAppointment = appointmentService.getAppointment(appointment.getAppointmentId());
updatedAppointment.setAppointmentDate("2022-10-02");
updatedAppointment.setAppointmentDescription("New Description");
updatedAppointment = appointmentService.getAppointment(updatedAppointment.getAppointmentId());
assertTrue(updatedAppointment.getAppointmentDescription().equals("New Description"));
assertTrue(updatedAppointment.getAppointmentDate().equals("2022-10-02"));
}
@Test
void testGetAppointmentAndDeleteSuccess() throws ParseException {
Appointment appointment = new Appointment("123456", "2022-10-01", "Appointment Description String");
assertTrue(appointmentService.addAppointment(appointment));
appointment = appointmentService.getAppointment(appointment.getAppointmentId());
assertTrue(appointment != null);
assertTrue(appointmentService.deleteAppointment(appointment.getAppointmentId()));
assertTrue(appointmentService.getAppointment(appointment.getAppointmentId()) == null);
}
@Test
void testDeleteInvalidAppointmentFail() {
String invalidAppointmentIdString = "123";
assertFalse(appointmentService.deleteAppointment(invalidAppointmentIdString));
}
И класс AppointmentService
import java.util.HashMap;
import java.util.Map;
public class AppointmentService {
private static AppointmentService reference = new AppointmentService();
private final Map appointmentList;
AppointmentService() {
this.appointmentList = new HashMap();
}
public static AppointmentService getService() {
return reference;
}
public boolean addAppointment(Appointment appointment) {
boolean isSuccess = false;
if(!appointmentList.containsKey(appointment.getAppointmentId())) {
appointmentList.put(appointment.getAppointmentId(), appointment);
isSuccess = true;
}
return isSuccess;
}
public boolean deleteAppointment(String appointmentId) {
return appointmentList.remove(appointmentId) != null;
}
public Appointment getAppointment(String appointmentId) {
return appointmentList.get(appointmentId);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/69422083/junit-tests-pass-individually-but-fail-when-run-together[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия