参数以一种与 Python 方法工作方式基本一致的方式传递给步骤
- 命名参数被放入等效的简化变量中(例如,“多少次” -> “how_many_times”) - 在下面的 click 步骤中演示。
- 如果方法具有 **kwargs,则 kwargs 的键名将与命名参数完全匹配 - 在下面的 fill_form 步骤中演示。
@validate 用于 StrictYAML 验证器 来验证步骤的类型。您可以在 强类型 中了解更多关于此的信息。
代码示例
engine.py
from code_that_does_things import *
from strictyaml import Int, Str, Bool
from hitchstory import BaseEngine, validate
class Engine(BaseEngine):
def fill_form(self, **kwargs):
for name, content in kwargs.items():
fill_form(name, content)
@validate(what=Str(), how_many_times=Int(), double_click=Bool())
def click(self, what, how_many_times=1, double_click=False):
for _ in range(how_many_times):
click(what)
带代码
from hitchstory import StoryCollection
from engine import Engine
from pathlib import Path
kwargs
example.story
Login:
steps:
- Fill form:
login username: john
login password: hunter2
StoryCollection(Path(".").glob("*.story"), Engine()).named("Login").play()
将输出
RUNNING Login in /path/to/working/example.story ... SUCCESS in 0.1 seconds.
然后,表单将使用以下内容填充
-
login username: john
-
login password: hunter2
可选参数单个参数
example.story
Click button:
steps:
- Click: my button
StoryCollection(Path(".").glob("*.story"), Engine()).named("Click button").play()
将输出
RUNNING Click button in /path/to/working/example.story ... SUCCESS in 0.1 seconds.
可选参数少于最大参数
example.story
Click button:
steps:
- Click:
what: my button
how many times: 2
StoryCollection(Path(".").glob("*.story"), Engine()).named("Click button").play()
将输出
RUNNING Click button in /path/to/working/example.story ... SUCCESS in 0.1 seconds.
可执行规范
从 arguments.story storytests 自动生成的文档。