Я работаю с:
- Ядро Спока
- Spock Reports
- Спок Спринг
- Тестирование Spring MVC
и у меня есть следующий код:
def "findAll() Expected"(){
given: "The URL being used is: /personas/xml/personas"
url = PersonaUrlHelper.FINDALL;
when: "When the URL is being calling with a GET"
resultActions = mockMvc.perform(get(url)).andDo(print())
then: "something..."
resultActions.andExpect(status().isOk())
.andExpect(content().contentType(RequestMappingProducesJsonUtf8.PRODUCES_JSON_UTF_8))
}
Два наблюдения:
Первый: обратите внимание на given: "The URL being used is: /personas/xml/personas"
, где значение URL / URI было добавлено вручную.
Два: переменная url
была определена как переменная экземпляра, потому что она часто встречается во многих методах тестирования. Поэтому def String url
Мой вопрос:
как я могу отобразить переменную url
в метке / блоке Spock? как (учитывая, тогда…)? Его нужно распечатать через Spock Reports и улучшить мою тестовую документацию.
Я прочитал следующее: Spocklight: дополнительные переменные данных для разворачивания Описание
Он работает вокруг @Unroll. Но я реализовал всю работу вокруг метки / блока where
.
Я уже пробовал что-то вроде:
given: "The URL being used is: $url"
given: "The URL being used is: ${url}"
И не работает
Я хочу работать с синтаксисом, подобным следующему:
def "findAll() Expected"(){
url = PersonaUrlHelper.FINDALL;
given: "The URL being used is: $url"
…. something
when: "When the URL is being calling with a GET"
Так какая же может быть правильная конфигурация?
Предположим, я выполняю рефакторинг для PersonaUrlHelper.FINDALL
, используемого в некоторых @RequestMapping
Spring и в этом методе тестирования. Я не хочу вручную обновлять текст в метке / блоке given
Итак, каков правильный синтаксис?