gpt4 book ai didi

robotframework - 在机器人框架中安全地从字典中获取 key

转载 作者:行者123 更新时间:2023-12-04 04:32:16 25 4
gpt4 key购买 nike

我有一个库,它有一个函数可以安全地从字典中获取 key 。这可能在测试套件中吗?

def safe_get(dict_obj, key):
val = dict_obj.get(key)
if val is None:
val = {}
return val

有没有办法使用类似 Run_Keyword_If 的方法来做到这一点?或 Set_Variable_If ?

最佳答案

TL;博士:

假设您使用的是机器人 2.9 或更高版本,您可以调用 get使用 Evaluate 在字典上的方法关键字,这将允许您在键不存在时指定默认值。

例如:

| | ${data}=  | create dictionary | ...
| | ${value}= | evaluate | $data.get("some key", "default value")

解释

从robotframework 2.9 开始,您可以通过删除花括号直接访问表达式中的变量(参见 Evaluating Expressions 库文档中的 BuiltIn)。例如,如果您有一本名为 ${data} 的字典。 ,您可以在表达式中使用实际变量 $data .

这使得在 python 表达式中使用变量变得非常容易。例如,如果您想在字典没有键时提供默认值,您可以调用 get使用 Evaluate 的字典方法关键字类似于 $data.get(...) .

另请注意,机器人定义了变量 ${None}成为python值 None (不是字符串 "None" ),您可以在表达式中使用它来检查值是否为 None .

以下示例显示如何使用 evaluate调用 get字典的方法。第一个测试表明您可以检查 None值,第二个示例显示了如何提供默认值。
*** Settings ***
| Library | Collections

*** Test Cases ***
| Get value from dictionary, returning None if key not in dictionary
| | ${data}= | Create dictionary | key1=one | key2=two
| | ${value}= | Evaluate | $data.get("key3")
| | should be equal | ${value} | ${None}

| Get value from dictionary, returning default value if key not in dictionary
| | ${data}= | Create dictionary | key1=one | key2=two
| | ${value}= | Evaluate | $data.get("key3", "default value")
| | should be equal as strings | ${value} | default value

当然,如果您希望您的默认值是一个新字典(正如您的问题所暗示的那样),您也可以这样做:
| | ${value}= | Evaluate | $data.get("key3", {})

关于robotframework - 在机器人框架中安全地从字典中获取 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com