#karate
#каратэ
Вопрос:
Я хочу передать значение параметра в функции вызова (фоновом режиме), которое включает двойные кавычки. Мой вызов: Background:
Таким образом, вызов будет {«имя»: «имя «Питер»»} Я попробовал следующее:
* def userCreated = call read('classpath:create-user.feature') { name: '#(name)'}
-
Определяем имя в karate.config как: name: ‘имя «Питер»‘, а затем вызываем read(‘classpath:create-user.feature’) { name: ‘#(name)’} — результат: {«name»: «имя «Питер»»}
-
Определяем имя в karate.config как: name: ‘имя «Peter»‘, , а затем вызываем read(‘путь к классу:create-user.feature’) { name: ‘#(имя)’} -> результат: {«name»: «имя «Peter»»}
-
Включение значения имени в вызов как: вызов read(‘classpath:create-user.feature’) { name: ‘имя «Питер»‘} -> результат: {«name»: «имя «Питер»»}
-
Включение значения имени в вызов как: вызов read(‘classpath:create-user.feature’) { name: ‘имя «Peter»‘} -> результат: {«name»: «имя «Peter»»}
- Определяем строку перед (фоном): * string nameString = ‘имя «Питер»‘, а затем вызываем read(‘classpath:create-user.feature’) { name: ‘#(nameString)’} -> тот же результат, что и предыдущие.
- Определяем строку перед (фоном): * string nameString = ‘имя «Питер «‘, а затем вызываем read(‘classpath:create-user.feature’) { name: ‘#(nameString)’} -> тот же результат, что и предыдущие.
Я также проверил https://github.com/intuit/karate#type-conversion , но я не знаю, как определить или включить строку в качестве параметра в функцию вызова, которая включает двойные кавычки. Есть идеи? Спасибо.
Ответ №1:
Это только правильное поведение, чтобы сохранить вашу строку в качестве значения в JSON, которое содержит "
, оно должно быть экранировано должным образом.
для экранирования
будет использоваться до "
Это ничего не меняет
* def name = ' karate is created by "Peter".'
# karate is created by "Peter".
* def callInput = {"name" : "#(name)"}
# {"name" : "karate is created by "Peter"."}
* print callInput.name
# karate is created by "Peter".
* match callInput.name == name
Снаружи все то же самое, только внутри JSON оно будет экранировано для строковых кавычек.