Как обойти спок? Поставщик данных - пустая ошибка - PullRequest
0 голосов
/ 17 мая 2018

У меня есть SpringBootTest, который читает в свойствах из application.properties. Код настройки использует аннотацию @Value для установки значений соответствующим образом. Одним из этих свойств является массив имен.

Я пытаюсь написать управляемый данными тест, используя Спок. Инструкция where использует эти имена, которые инициализируются в настройке:

expect:
retrievedName == value
where:
value << getNames()

Это всегда терпит неудачу с org.spockframework.runtime.SpockExecutionException: Data provider is null. Похоже, что вызов getNames () вызывается до инициализации свойств в коде установки. Если я не использую оператор where (тестирование на основе данных), все работает нормально. Есть ли обходной путь для этого?

1 Ответ

0 голосов
/ 01 ноября 2018

Нельзя использовать данные, инициализированные в разделе setup, в качестве источника для тестов, управляемых данными.Согласно документам :

Несмотря на то, что он объявлен последним, блок where оценивается перед выполнением содержащего его метода объекта.

Вы можете попробовать и использовать setupSpec() методы и @Shared поля в качестве обходного пути.

См. здесь для примера.

...