Проблема с вашим примером заключается в том, что вы пытаетесь получить доступ к экземпляру CarService
из контекста в блоке where
. Код из блока where
используется для создания нескольких тестов на ранней стадии, достаточно близко к загрузке класса.
Я предлагаю заменить параметр Car
только идентификатором автомобиля. Затем вы звоните getCarById
в блоке given
. В это время контекст будет загружен и carService
доступен.
@SpringBootTest
class Tmp extends Specification {
@Autowired
private CarService carService
def "validate number of doors"(int carId, int expectedNrOfDoors) {
given:
Car car = carService.getById(carId)
expect:
car.getNrOfDoors() == expectedNrOfDoors
where:
carId || expectedNrOfDoors
1 || 3
2 || 3
3 || 5
}
}