【问题标题】:Lettuce BDD - Values in scenario defined in config fileLettuce BDD - 配置文件中定义的场景中的值
【发布时间】:2016-03-16 11:02:28
【问题描述】:

我对 BDD 和 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 并看到您可以在此文件中设置变量,您可以使用 world 从您的 steps.py 访问这些变量。

因此,可以像这样重新描述场景:

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 打算像这样使用......或者是否有不同的方法处理这种情况?

【问题讨论】:

    标签: python bdd lettuce


    【解决方案1】:

    我会说隐藏实现细节是一个好方法。也就是说,I have a correct IP 比将此详细信息保存在属性文件中更好。

    BDD 是关于沟通的。如果知道你使用了正确的ip就足够了,那么阅读示例时就不需要知道哪个ip了。

    【讨论】:

    • 感谢您的回复!当谈到在某处存储“正确的 IP”时,您认为最佳做法是什么,请记住,这可能需要根据测试运行的环境进行更改?对于生菜来说,为此目的使用terrain.py 有意义吗?
    • 我不知道生菜,所以我不能说那个回声系统中的逻辑位置是什么。在 Java 中,我会考虑为环境使用不同的属性文件或不同的常量。我的目标是为维护者提供易于找到的东西,以便它们易于更新。我也会尽量避免重复值。
    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多