我非常喜欢 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 方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top