用户关键字返回值

和库关键字类似, 用户关键字也可以返回值. 常见的做法是通过 [Return] 设置, 不过还可以使用 BuiltIn_ 关键字 Return From KeywordReturn From Keyword If 来实现.

不管使用何种方式返回值, 返回值都可以被 赋值给变量

设置 [Return]

最常见的情况是用户关键字返回一个值, 并且赋值给一个标量变量. 直接将返回值放在 [Return] 设置后面的单元格内.

用户关键字还可以返回多个值, 这些值可以一次性赋给多个标量, 或者一个列表变量, 或者两者混合. 多个值只需依次跟在 [Return] 后面的单元格中即可.

  1. *** Test Cases ***
  2. One Return Value
  3. ${ret} = Return One Value argument
  4. Some Keyword ${ret}
  5.  
  6. Multiple Values
  7. ${a} ${b} ${c} = Return Three Values
  8. @{list} = Return Three Values
  9. ${scalar} @{rest} = Return Three Values
  10.  
  11. *** Keywords ***
  12. Return One Value
  13. [Arguments] ${arg}
  14. Do Something ${arg}
  15. ${value} = Get Some Value
  16. [Return] ${value}
  17.  
  18. Return Three Values
  19. [Return] foo bar zap

通过特殊关键字来返回值

内置关键字 Return From KeywordReturn From Keyword If 可以在用户关键字中间根据条件来返回值. 这两个关键字都支持返回多个值.

下面的第一个例子在功能上和前面使用 [Return] 的例子一样. 第二个例子则更高级点, 演示了如何在 FOR循环 中根据条件来返回值.

  1. *** Test Cases ***
  2. One Return Value
  3. ${ret} = Return One Value argument
  4. Some Keyword ${ret}
  5.  
  6. Advanced
  7. @{list} = Create List foo baz
  8. ${index} = Find Index baz @{list}
  9. Should Be Equal ${index} ${1}
  10. ${index} = Find Index non existing @{list}
  11. Should Be Equal ${index} ${-1}
  12.  
  13. *** Keywords ***
  14. Return One Value
  15. [Arguments] ${arg}
  16. Do Something ${arg}
  17. ${value} = Get Some Value
  18. Return From Keyword ${value}
  19. Fail This is not executed
  20.  
  21. Find Index
  22. [Arguments] ${element} @{items}
  23. ${index} = Set Variable ${0}
  24. :FOR ${item} IN @{items}
  25. \ Return From Keyword If '${item}' == '${element}' ${index}
  26. \ ${index} = Set Variable ${index + 1}
  27. Return From Keyword ${-1} # Could also use [Return]

注解

Return From KeywordReturn From Keyword If这两个关键字在 Robot Framework 2.8 版本后才支持.