我最近在一次求职面试的代码挑战中为编程任务而苦苦挣扎:有一个Flight
类,其属性为final String flightNo
。最初flightNo
是在构造函数中传递的。
任务是确保航班号唯一(没有更多信息),并且仅更改Flight
中的代码。但是,测试了groovy spock测试(有关更多信息,请参见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
添加到Set
中。我没有太多时间了,对Spock测试语法还是陌生的(与此同时,我很喜欢这个主意)。
之后,我发现如果我基于Flight.equals
实现hashCode
和flightNo
,则测试通过。
寻找描述的解决方案时,要求航班号唯一(没有更多信息)是否正确?