Тесты Junit проходят по отдельности, но не выполняются вместе ⇐ JAVA
Тесты Junit проходят по отдельности, но не выполняются вместе
Сейчас я работаю над школьным заданием и с трудом справляюсь с тестированием. По какой-то причине модульные тесты работают нормально при индивидуальном запуске, но не при совместном запуске. Я знаю, что это как-то связано с тем, что я делюсь объектом между ними, хотя мне не следует основываться на моих предыдущих поисках, но я не могу хоть убей понять, что нужно изменить, чтобы решить эту проблему. Ниже приведен код как для класса AppointmentService, так и для класса AppointmentServiceTest. Буду очень признателен за любую помощь, так как я застрял на этом уже некоторое время и знаю, что, вероятно, кто-то другой сразу увидит это.
Класс AppointmentServiceTest
импортировать статический org.junit.jupiter.api.Assertions.*; импортировать java.text.ParseException; импортировать org.junit.jupiter.api.AfterEach; импортировать org.junit.jupiter.api.BeforeAll; импортировать org.junit.jupiter.api.BeforeEach; импортировать org.junit.jupiter.api.Test; импортировать главную.Назначение; импортировать main.AppointmentService; класс AppointmentServiceTest { частная статическая служба назначения AppointmentService; @BeforeAll статическая пустота setUp() { Служба назначения = Служба назначения.getService(); } @Тест void testAddAppointmentSuccess() выдает ParseException { Назначение встречи = new Appointment("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(назначение)); Встреча кэшированаAppointment = назначениеService.getAppointment(appointment.getAppointmentId()); AssertTrue (cachedAppointment! = null); AssertTrue(cachedAppointment.getAppointmentId().equals("123456")); AssertTrue(cachedAppointment.getAppointmentDate().equals("2022-10-01")); AssertTrue(cachedAppointment.getAppointmentDescription().equals("Строка описания встречи")); } @Тест void testAddMultipleAppointmentsSuccess() выдает ParseException { Встреча назначений1 = новая встреча("123456", "2022-10-01", "Строка описания встречи"); Назначение встречи2 = новое назначение("1234567", "2022-10-02", "Описание встречи String2"); AssertTrue(appointmentService.addAppointment(appointment1)); Встреча кэшированаAppointment1 = назначениеService.getAppointment(appointment1.getAppointmentId()); AssertTrue (cachedAppointment1! = null); AssertTrue(cachedAppointment1.getAppointmentId().equals("123456")); AssertTrue(cachedAppointment1.getAppointmentDate().equals("2022-10-01")); AssertTrue(cachedAppointment1.getAppointmentDescription().equals("Строка описания встречи")); AssertTrue(appointmentService.addAppointment(appointment2)); Встреча кэшированаAppointment2 = назначениеService.getAppointment(appointment1.getAppointmentId()); AssertTrue (cachedAppointment2! = null); AssertTrue(cachedAppointment2.getAppointmentId().equals("1234567")); AssertTrue(cachedAppointment2.getAppointmentDate().equals("2022-10-02")); AssertTrue(cachedAppointment2.getAppointmentDescription().equals("Описание встречи String2")); } @Тест void testAddAppoitnmentDuplateIdFail() выдает ParseException { Встреча назначений1 = новая встреча("123456", "2022-10-01", "Строка описания встречи"); Встреча назначена2 = новая встреча("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(appointment1)); AssertFalse(appointmentService.addAppointment(appointment2)); } @Тест void testGetAppointmentAndUpdateSuccess() выдает ParseException { Назначение встречи = new Appointment("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(назначение)); Встреча обновленаAppointment = назначениеService.getAppointment(appointment.getAppointmentId()); updateAppointment.setAppointmentDate("2022-10-02"); updateAppointment.setAppointmentDescription("Новое описание"); обновленноеНазначение = назначениеService.getAppointment(updatedAppointment.getAppointmentId()); AssertTrue(updatedAppointment.getAppointmentDescription().equals("Новое описание")); AssertTrue(updatedAppointment.getAppointmentDate().equals("2022-10-02")); } @Тест void testGetAppointmentAndDeleteSuccess() выдает ParseException { Назначение встречи = new Appointment("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(назначение)); назначение = назначениеService.getAppointment(appointment.getAppointmentId()); AssertTrue (назначение! = ноль); AssertTrue(appointmentService.deleteAppointment(appointment.getAppointmentId())); AssertTrue(appointmentService.getAppointment(appointment.getAppointmentId()) == null); } @Тест недействительный testDeleteInvalidAppointmentFail () { StringvalidAppointmentIdString = "123"; AssertFalse(appointmentService.deleteAppointment(invalidAppointmentIdString)); }
И класс AppointmentService
импортировать java.util.HashMap; импортировать java.util.Map; общественный класс AppointmentService { частная статическая ссылка на AppointmentService = новая AppointmentService(); частная окончательная карта Map PurchaseList; Служба назначения() { this.appointmentList = новый HashMap(); } общественный статический AppointmentService getService() { обратная ссылка; } public boolean addAppointment(Встреча) { логическое значение isSuccess = ложь; if(!appointmentList.containsKey(appointment.getAppointmentId())) { назначениеList.put(appointment.getAppointmentId(), назначение); isSuccess = правда; } возврат isSuccess; } общедоступное логическое значение deleteAppointment (StringceptionId) { вернуть назначениеList.remove(appointmentId)!= null; } общественное назначение getAppointment (String назначениеId) { вернуть назначениеList.get(appointmentId); } }
Сейчас я работаю над школьным заданием и с трудом справляюсь с тестированием. По какой-то причине модульные тесты работают нормально при индивидуальном запуске, но не при совместном запуске. Я знаю, что это как-то связано с тем, что я делюсь объектом между ними, хотя мне не следует основываться на моих предыдущих поисках, но я не могу хоть убей понять, что нужно изменить, чтобы решить эту проблему. Ниже приведен код как для класса AppointmentService, так и для класса AppointmentServiceTest. Буду очень признателен за любую помощь, так как я застрял на этом уже некоторое время и знаю, что, вероятно, кто-то другой сразу увидит это.
Класс AppointmentServiceTest
импортировать статический org.junit.jupiter.api.Assertions.*; импортировать java.text.ParseException; импортировать org.junit.jupiter.api.AfterEach; импортировать org.junit.jupiter.api.BeforeAll; импортировать org.junit.jupiter.api.BeforeEach; импортировать org.junit.jupiter.api.Test; импортировать главную.Назначение; импортировать main.AppointmentService; класс AppointmentServiceTest { частная статическая служба назначения AppointmentService; @BeforeAll статическая пустота setUp() { Служба назначения = Служба назначения.getService(); } @Тест void testAddAppointmentSuccess() выдает ParseException { Назначение встречи = new Appointment("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(назначение)); Встреча кэшированаAppointment = назначениеService.getAppointment(appointment.getAppointmentId()); AssertTrue (cachedAppointment! = null); AssertTrue(cachedAppointment.getAppointmentId().equals("123456")); AssertTrue(cachedAppointment.getAppointmentDate().equals("2022-10-01")); AssertTrue(cachedAppointment.getAppointmentDescription().equals("Строка описания встречи")); } @Тест void testAddMultipleAppointmentsSuccess() выдает ParseException { Встреча назначений1 = новая встреча("123456", "2022-10-01", "Строка описания встречи"); Назначение встречи2 = новое назначение("1234567", "2022-10-02", "Описание встречи String2"); AssertTrue(appointmentService.addAppointment(appointment1)); Встреча кэшированаAppointment1 = назначениеService.getAppointment(appointment1.getAppointmentId()); AssertTrue (cachedAppointment1! = null); AssertTrue(cachedAppointment1.getAppointmentId().equals("123456")); AssertTrue(cachedAppointment1.getAppointmentDate().equals("2022-10-01")); AssertTrue(cachedAppointment1.getAppointmentDescription().equals("Строка описания встречи")); AssertTrue(appointmentService.addAppointment(appointment2)); Встреча кэшированаAppointment2 = назначениеService.getAppointment(appointment1.getAppointmentId()); AssertTrue (cachedAppointment2! = null); AssertTrue(cachedAppointment2.getAppointmentId().equals("1234567")); AssertTrue(cachedAppointment2.getAppointmentDate().equals("2022-10-02")); AssertTrue(cachedAppointment2.getAppointmentDescription().equals("Описание встречи String2")); } @Тест void testAddAppoitnmentDuplateIdFail() выдает ParseException { Встреча назначений1 = новая встреча("123456", "2022-10-01", "Строка описания встречи"); Встреча назначена2 = новая встреча("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(appointment1)); AssertFalse(appointmentService.addAppointment(appointment2)); } @Тест void testGetAppointmentAndUpdateSuccess() выдает ParseException { Назначение встречи = new Appointment("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(назначение)); Встреча обновленаAppointment = назначениеService.getAppointment(appointment.getAppointmentId()); updateAppointment.setAppointmentDate("2022-10-02"); updateAppointment.setAppointmentDescription("Новое описание"); обновленноеНазначение = назначениеService.getAppointment(updatedAppointment.getAppointmentId()); AssertTrue(updatedAppointment.getAppointmentDescription().equals("Новое описание")); AssertTrue(updatedAppointment.getAppointmentDate().equals("2022-10-02")); } @Тест void testGetAppointmentAndDeleteSuccess() выдает ParseException { Назначение встречи = new Appointment("123456", "2022-10-01", "Строка описания встречи"); AssertTrue(appointmentService.addAppointment(назначение)); назначение = назначениеService.getAppointment(appointment.getAppointmentId()); AssertTrue (назначение! = ноль); AssertTrue(appointmentService.deleteAppointment(appointment.getAppointmentId())); AssertTrue(appointmentService.getAppointment(appointment.getAppointmentId()) == null); } @Тест недействительный testDeleteInvalidAppointmentFail () { StringvalidAppointmentIdString = "123"; AssertFalse(appointmentService.deleteAppointment(invalidAppointmentIdString)); }
И класс AppointmentService
импортировать java.util.HashMap; импортировать java.util.Map; общественный класс AppointmentService { частная статическая ссылка на AppointmentService = новая AppointmentService(); частная окончательная карта Map PurchaseList; Служба назначения() { this.appointmentList = новый HashMap(); } общественный статический AppointmentService getService() { обратная ссылка; } public boolean addAppointment(Встреча) { логическое значение isSuccess = ложь; if(!appointmentList.containsKey(appointment.getAppointmentId())) { назначениеList.put(appointment.getAppointmentId(), назначение); isSuccess = правда; } возврат isSuccess; } общедоступное логическое значение deleteAppointment (StringceptionId) { вернуть назначениеList.remove(appointmentId)!= null; } общественное назначение getAppointment (String назначениеId) { вернуть назначениеList.get(appointmentId); } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение