Понякога трябва да дефинирате стойности динамично (като дата и час сега, произволни низове, произволни цели числа, съдържание на файлове и т.н.) и да ги използвате в различни стъпки, без да сте изрични или твърдо да кодирате стойността.
И така, въпросът ми е как мога да дефинирам променливи вътре в стъпките (правилният начин да го направя), за да използвам тези променливи в следващите стъпки.
Някои примери
Given A random string of length "100" as "my_text"
And I log in to my platform
And I ask to add the following post:
| title | description |
| Some example of title | {{my_text}} |
When I submit the post form
Then The posts table shows these posts:
| title | description |
| Some example of title | {{my_text}} |
And I delete any post containing in the description "{{my_text}}"
Това е основен пример, който се опитва да обясни защо бих искал да дефинирам променливи на стъпки и да ги запазя в контекста, за да го използвам в следващите стъпки.
Идеята ми беше да модифицирам методите before_step и after_step... за да задам променлива в контекст, за да съхранявам моите персонализирани променливи по следния начин:
def before_step(context):
if not hasattr(context, 'vars'):
context.vars = {}
if hasattr(context, table) and context.table:
parse_table(context)
def parse_table(context):
# Here use a regex to check each cell and look for `"{{<identifier>}}"` and if match, replace the cell value by context.vars[identifier] so the step "the posts table shows these posts will never know what is `{{my_text}}` it will be abstract seeing the random string.
Схема на сценарии, използвайте нещо подобно, като дефинирате променливи като "<some_identifier>"
и след това за всеки пример заменете стойността в стъпката.
Основно е да се възпроизведе поведението, но за всякакъв вид стъпка, проста или използваща таблици.
Това ли е правилният начин да направите нещо подобно?