BDD表现Python需要创建一个世界地图来保存值
作者:互联网
我不太熟悉Python但是我已经使用Python行为设置了BDD框架,我现在想要创建一个包含数据的世界地图类,并且可以在所有场景中检索.
例如,我将有一个世界级,我可以使用:
World w
w.key.add('key', api.response)
在一个场景和另一个场景中,我可以使用:
World w
key = w.key.get('key').
编辑:
或者,如果存在使用上下文或类似行为的内置方式,则可以保存属性,并且可以在所有方案中检索这些属性.
像生菜一样,你可以使用世界http://lettuce.it/tutorial/simple.html
我在场景之间尝试过这种方法,但它似乎并没有捡到它
class World(dict):
def __setitem__(self, key, item):
self.__dict__[key] = item
print(item)
def __getitem__(self, key):
return self.__dict__[key]
在场景A中一步设置项目:w.setitem(‘key’,response)
在场景B中的另一个步骤中获取项目:w.getitem(‘key’,)
这显示了一个错误:
Traceback (most recent call last):
File "C:\Program Files (x86)\Python\lib\site-packages\behave\model.py", line 1456, in run
match.run(runner.context)
File "C:\Program Files (x86)\Python\lib\site-packages\behave\model.py", line 1903, in run
self.func(context, *args, **kwargs)
File "steps\get_account.py", line 14, in step_impl
print(w.__getitem__('appToken'))
File "C:Project\steps\world.py", line 8, in __getitem__
return self.__dict__[key]
KeyError: 'key'
似乎世界并没有在运行的步骤之间保留值.
编辑:
我不确定如何使用environment.py,但可以看到它有一种在步骤之前运行代码的方法.如何调用environment.py中的soap客户端调用,然后将其传递给特定步骤?
编辑:
我在environment.py中发出了请求并对值进行了硬编码,如何将变量传递给environment.py并返回?
解决方法:
它在python行为术语中被称为“上下文”.步骤定义函数的第一个参数是behave.runner.Context类的一个实例,您可以在其中存储您的世界实例.请参阅the appropriate part of the tutorial.
标签:python,bdd,suds,python-behave 来源: https://codeday.me/bug/20190611/1217818.html