Недавно я боролся с задачей программирования в тесте кода для приглашения на собеседование: был класс Flight
со свойством final String flightNo
. Изначально flightNo
было передано в конструктор.
Задача состояла в том, чтобы убедиться, что номера рейсов уникальны (без дополнительной информации) и изменить код только в Flight
. Тем не менее, тест на заводную спок (дополнительную информацию см. https://www.baeldung.com/groovy-spock)
given:
Flight flight0 = new Flight("FN123")
FlightManager flightManager = ...
flightManager.addNewFlight(flight0)
when:
Flight flight1 = new Flight("FN123")
boolean added = flightManager.addNewFlight(flight1)
then:
!added
FlightManager.addNewFlight
добавляет Flight
s к Set
. У меня не было много времени, и я был новичком в синтаксисе тестов спока (тем временем мне нравится идея).
Впоследствии я узнал, что тестовый прогон, если я реализую Flight.equals
и hashCode
на основе flightNo
.
Правильно ли запрашивать уникальность номеров рейсов (без дополнительной информации) при поиске описанного решения?