我对BDD和Lettuce都很陌生,而且我遇到了一个我不确定如何处理的问题。
我想创建一个Lettuce测试套件,然后我可以针对不同的环境运行,其中场景中的某些参数对于每个环境都是不同的。
因此,按照Lettuce文档,我有这个示例场景:
Scenario: Create correct config
Given I have IP "127.0.0.0:8000"
And I specify username "myuser" and password "mypassword"
When I connect to the server
Then I get return code 200
在这种情况下,我必须更改每个环境的IP,用户和密码。但这不实用,我希望能够为每个环境创建一些配置文件,它将包含这些参数的值。
我发现了terrain.py
并发现您可以在此文件中设置变量,您可以使用steps.py
从world
访问该文件。
所以有可能像这样重写这个场景:
Scenario: Create correct config
Given I have a correct IP
And I specify correct credentials
When I connect to the sever
Then I get return code 200
现在,在“I have a correct IP
”的步骤定义示例中,您可以使用world.correctIP
中定义的terrain.py
。
这可以按照我需要的方式工作,但是我不相信这是正确的方法,如果打算像这样使用terrain.py ......或者有不同的方法处理这种情况?
答案 0 :(得分:1)
我想说隐藏实现细节是一种很好的方法。也就是说,I have a correct IP
是比将属性文件保存在属性文件中更好的方法。
BDD就是沟通。如果知道您使用正确的ip就足够了,那么在阅读示例时无需知道哪个ip。