Robot Framework中如何重新实例化自定义库实例以更新参数?
Robot Framework 自定义库实例更新解决方案
问题1:用新参数重新实例化Widget,使toy.get fullname返回jane doe
可以实现,提供两种可行方案:
方案1:动态导入覆盖原有实例
在测试用例中修改参数后,使用Import Library关键字重新导入Widget库并指定新参数,通过WITH NAME toy直接覆盖原实例。
示例代码:
*** Test Cases *** Update Widget Instance ${FIRSTNAME}= Set Variable jane # 重新导入库并覆盖toy实例 Import Library Widget.py ${FIRSTNAME} ${LASTNAME} WITH NAME toy ${fullname}= toy.get fullname Should Be Equal ${fullname} jane doe
方案2:在Widget库中添加重置方法
在自定义库的Python代码中新增一个初始化方法,允许直接更新实例的参数属性,无需重新导入库。
Python库代码示例:
class Widget: def __init__(self, firstname, lastname): self.firstname = firstname self.lastname = lastname def get_fullname(self): return f"{self.firstname} {self.lastname}" # 新增重置方法,支持更新指定参数 def reinitialize(self, firstname=None, lastname=None): if firstname is not None: self.firstname = firstname if lastname is not None: self.lastname = lastname
Robot Framework测试用例示例:
*** Test Cases *** Reinitialize Widget Instance ${FIRSTNAME}= Set Variable jane toy.reinitialize ${FIRSTNAME} ${fullname}= toy.get fullname Should Be Equal ${fullname} jane doe
问题2:删除toy实例并运行时创建同名新实例以保持向后兼容
完全可以实现,通过Unload Library移除原有实例后,重新导入创建同名实例,原有引用toy的测试代码无需修改,保持向后兼容。
示例代码:
*** Test Cases *** Delete and Recreate Widget Instance ${FIRSTNAME}= Set Variable jane # 卸载已注册的toy实例 Unload Library toy # 重新导入库并创建同名实例 Import Library Widget.py ${FIRSTNAME} ${LASTNAME} WITH NAME toy ${fullname}= toy.get fullname Should Be Equal ${fullname} jane doe
内容的提问来源于stack exchange,提问作者utpal
相关产品推荐
相关产品推荐

