You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Случаи, когда было бы полезно применять ReplaceVariables ко всем параметрам
Then я сохраняю дату {day}.{month}.{year} в формате "{format}" в переменную "{varName}" - format - можно было бы хранить в переменной, + можно было бы одну дату сохранить в другом формате например
Then я сохраняю дату {{MyDate}} в формате "{{MyFormat}}" в переменную "MyFormattedDate"
Then я подставляю значение переменной ""(.+)"" в текст ""(.*)"" и сохраняю в переменную ""(.+)"""
из-за того что текст не заменяет переменные пришлось делать шаг
[StepDefinition(@"я заменяю в переменной ""(.+)"" текст ""(.*)"" на ""(.+)""")]
public void ReplaceTextInVar(string varName, string text, string replacement)
{
text = _variableContext.ReplaceVariables(text);
replacement = _variableContext.ReplaceVariables(replacement);
_variableContext.CheckVariableByKey(varName).Should().BeTrue();
_variableContext.SetVariable(varName, typeof(string), _variableContext.GetVariable(varName).Value.ToString().Replace(text, replacement));
}
Все шаги работы с БД - уже обсуждали достаточно экзотичный кейс, но есть потребность передавать имя коннекшен из переменной
Шаги типа [Then(@"я убеждаюсь, что значение переменной ""(.+)"" начинается с ""(.+)""")] можно было бы использовать в таоком виде
Then я убеждаюсь, что "Info:{{Boy}} любит {{Girl}}" начинается с "{{MesType}}:{{LoveMessage}}"
Не всегда очевидно где будет replace, а где нет - приходится лазить в исходники или пробовать
В целом очень сильно добавляется гибкости, учитывая возможность использования функций типа {{Trim(Mystr)}}
The text was updated successfully, but these errors were encountered:
Придется увеличивать сценарий для хранения доп форматов. И что это за кейсы, когда можно использовать несколько форматов? Почему тогда не использовать Scenario Outline со встроенными Example для разных форматов?
Данный шаг был реализован одной из команд для их собственных нужд напрямую в AFT и был в патче переноса. За корректный вариант спасибо - будет внесен в патч
Из-за кастомного способа создания подключения надо думать о корректности выполнения Replace. Нужен сбор данных о целесообразности замен в подключениях при одном и нескольких базах
Ибо если идет подключение лишь к одной базе, то данная функциональность нецелесообразна в принципе
тогда уж лучше
я убеждаюсь, что значение ""(.+)"" начинается с ""(.+)""
Это недоработка - будет поправлено в ближайшем патче
Все функции, где идет сравнение со значением используется Replace. В текущих реалиях некоторые функции могут быть не переведены, но это редкость. Т.е все шаги Then и в редких исключениях Given для создания
Решение - документация, которая пишется медленно
а) Формат может и один, но получить его можно с помощью функции... Например в зависимости от текущего или нужного Culture
б) Формат может один, а использоваться может несколько раз, менять проще в одном месте (outline не всегда подходит)
в) Взять исходную дату (не формат) из переменной сейчас нельзя
Просьба всё же добавить, т.к. сделан большой функционал с использованием функции для получения имени коннекшена и хочется иметь возможность использовать и встроенные шаги молдера. Кроме того что обсуждалось, сейчас готового кейса не скажу, но уверен, что есть случаи, когда данные по БД получают на лету (из файла, другой БД, сервиса...)
если меняется culture для сценария, то это отдельный сценарий! Ненужно вставлять условия в сценарии - specflow не для этого (тогда были бы шаги IF)
если нужно у переменной менять формат, то адекватнее "я получаю дату {{data}} в формате "(.+)" и сохраняю в переменную (.+)"
что позволит брать или сохраненную в переменной дату, или фиксированную в DataTime и выдавать в нужном формате. Как раз функционал замены. Ибо шаг замены значения переменной есть, но он не полный
Ибо шаги на именно создание DateTime есть
На преобразование string -> datetime - нет (добавить можно)
Случаи, когда было бы полезно применять ReplaceVariables ко всем параметрам
Then я сохраняю дату {{MyDate}} в формате "{{MyFormat}}" в переменную "MyFormattedDate"
из-за того что текст не заменяет переменные пришлось делать шаг
Then я убеждаюсь, что "Info:{{Boy}} любит {{Girl}}" начинается с "{{MesType}}:{{LoveMessage}}"
В целом очень сильно добавляется гибкости, учитывая возможность использования функций типа {{Trim(Mystr)}}
The text was updated successfully, but these errors were encountered: