机器人框架相当于 pytest.fixture
-
21-12-2019 - |
题
我非常喜欢 pytest 的一个功能是 pytest.fixture 这允许依赖注入。举个例子,我可以让一个夹具注入一个新的随机字符串 silly_string
进入任何需要它的函数:
conftest.py:
@pytest.fixture(scope='function')
def silly_string(request):
return ''.join(random.choice(string.ascii_lowercase) for _ in range(5))
测试字符串.py
def test_string_length(self, silly_string)
assert len(silly_string) == 5
显然,这是人为的例子。
我不知道 Robot Framework 中有任何等效的功能。目前,我使用关键字创建一个新变量,然后将该变量作为参数传递。如果能自动注入参数就好了。
Robot Framework 中是否有类似执行依赖注入的机制?
解决方案
不,机器人没有内置任何东西可以做你想做的事。
如果您想要的是在运行时生成的字符串,您可以利用机器人的 扩展变量语法. 。例如,如果您有一个机器人变量 ${v}
持有对 python 对象的引用,你可以这样做:
| | ${v}= | Get reference to v
| | log | Hello ${v.silly_string()}`
上面将调用 silly_string
指向的对象上的方法 ${v}
. 。关键词 Get reference to v
将是您编写的基于 python 的关键字,它返回一个带有以下内容的对象 silly_string
方法。
不隶属于 StackOverflow