Могу ли я включить все необходимые пути JSON в файл JSON и использовать его в моем файле функций для сопоставления или чего-либо еще?

Например, я сохраняю paths.json и добавляю следующее. Я знаю, что в том, как я пытаюсь, есть ошибка, но не могу ее найти

{
  "name": "JSON Path's",
  "description": "This mainly store the paths of the JSON elements which are validated in each scenario",
  "SC_4": {
    "appHeader": "$.testResponse.applicationHeader",
    "ProductsAction": "$.testResponse.applicationHeader.item.action"
  }
} 


* def attributes = read('../jsonpaths/paths.json')
Given url endPointURL
And request baseJsonRequest
When method post
Then status 200
* def appHeaderSecondTry = attributes.SC_4.appHeader
* print appHeaderSecondTry

person Sree    schedule 27.11.2017    source источник


Ответы (1)


Вау, ты так скоро станешь опытным пользователем каратэ :P

Хорошо, лично я не рекомендую пытаться построить мини-фреймворк над каратэ, как вы делаете, я вижу, что вы пытаетесь сделать - держите все утверждения "декларативными" и пытайтесь повторно использовать общий код для фактического HTTP. звонок и т.д.

Мое личное мнение заключается в том, что вы экономите очень мало строк кода (из-за того, как легко сделать HTTP-запрос в каратэ). Кроме того, вы должны иметь возможность повторно использовать файл функций с помощью ключевого слова call. Я хотел бы призвать вас попытаться сохранить «нормальные» операторы соответствия в ваших тестах.

Тем не менее, вам не хватает операции karate.eval(), ищите ее в документе. Вот пример (строка 91): js-arrays.feature

person Peter Thomas    schedule 27.11.2017