Вопрос: Как в экспортный сценарий передавать многострочные параметры, как это сделано в библиотечном шаге "И я выполняю код встроенного языка"? Там я код указываю сразу после шага, обрамляя тремя двойными кавычками и могу использовать переносы строк. Во встроенной справке Ванессы есть пример, но у меня его повторить не получается.
Да, в экспортный сценарий можно передать многострочный параметр, но делается это не так интуитивно, как передача "обычных" параметров, которые передаются в имени сценария.
Чтобы в экспортный сценарий (подсценарий) можно было передать многострочную строку, нужно, чтобы в теле этого экспортного сценария вызывался бы какой-либо другой шаг, принимающий многострочную строку в качестве параметра.
Самый универсальный шаг — шаг установки значения переменной
И Я запоминаю в переменную "ИмяПеременной" значение "ЗначениеПеременной".Нагляднее будет продемонстрировать на примере. Допустим, мы хотим реализовать шаг
И я вывожу многострочное приветствие, который мы хотели бы вызывать вот таким образом:И Я вывожу многострочное приветствие
"""
Привет, Мир!
Hello, World!
"""
Реализация этого шага должна быть такой:
📔 Экспорт.Приветствие.feature
#language: ru
@tree
@ExportScenarios
Функционал: Экспорт. Приветствие
Сценарий: Я вывожу многострочное приветствие
И Я запоминаю в переменную "ТекстПриветствия" значение
"""
Приветствие по умолчанию
"""
И я вывожу сообщение в менеджер тестирования "$ТекстПриветствия$"
Как вы видите, в названии сценария у нас нет никаких параметров.
Вместо этого у нас в первой строке сценария в шаге
И я запоминаю в переменную ... в переменную сохраняется многострочная строка со значением "Приветствие по умолчанию". Когда мы вызываем наш шаг, как написано в примере выше, то VA подменяет эту многострочную строку на ту, которую мы передаем (с приветствиями на русском и английском).
У такой реализации есть побочный эффект: мы можем вызвать наш шаг даже без аргументов. В этом случае в переменную присвоится (и будет выведено) значение
Приветствие по умолчанию. Многострочных параметров у шага может быть несколько, для этого в реализации шага нужно использовать несколько шагов, принимающих многострочные параметры. При вызове шага, передавать значения таких параметров нужно после вызова шага точно в том порядке, в котором они идут в теле экспортного сценария. Но, если честно, мне сложно придумать пример, когда такое может понадобиться. Если вдруг у вас есть кейс, расскажите о нем в комментариях.
Это была еженедельная рубрика #ВопросОтвет. Присылайте вопросы по теме тестирования в комментариях к постам или в личные сообщения и я постараюсь на них ответить.🦋 @QA_1C