【问题标题】:Cucumber & test data management for non-Ruby apps非 Ruby 应用程序的 Cucumber 和测试数据管理
【发布时间】:2013-12-11 03:12:18
【问题描述】:

我正在测试一个基本上是消息处理应用程序的应用程序 - 一条消息进来,它的内容被分析,然后它被发送到其他地方进行处理。该应用不是用 Ruby 构建的。

正如您可能想象的那样,主要的测试方法包括生成一大堆不同类型的(相当复杂的)消息,将它们加载到应用程序中,等待几秒钟,然后确保它们被发送到正确的位置。

从功能上讲,测试进展顺利,但我目前已在 Ruby 代码中定义了所有测试消息和所需的消息目标 - 我想将它们移动到 YAML 文件或(第二选择)数据库.我更喜欢使用 YAML 文件而不是数据库,因为它更容易进行版本控制,并且非技术测试人员可以直接编辑消息内容。

是否有“推荐”的方式在 Cucumber 中实现这种数据管理?有点像夹具方法的味道是有道理的,但对我来说,夹具总是涉及从文件中填充数据库,然后使用数据库进行测试,我不能 100% 确定这是最适合这个特定的/最简单的问题。

【问题讨论】:

    标签: ruby cucumber yaml test-data


    【解决方案1】:

    我相信您最满意的是场景大纲。您也许可以创建一个 yaml 文件并从一个步骤加载它,但这不会产生非常有用的测试输出。您(我认为)真正想要的是查看每条消息及其目的地按天气通过或失败排序。下面的示例是针对失败登录的,但它得到了重点。

    Scenario Outline: Failed Login
      Given I am not authenticated
      When I go to "/login"
      And I fill in "login" with "<mail>"
      And I fill in "password" with "<password>"
      And I press "Log In"
      Then the login request should fail
      Then I should see an error message
    
      Examples:
        | mail           | password       |
        | not_an_address | nil            |
        | not@not        | 123455         |
        | 123@abc.com    | wrong_paasword |
    

    每个示例将根据其是否有效、失败或待处理而变为绿色、红色或黄色。

    【讨论】:

    • 这看起来很直观,但我注意到黄瓜 wiki 的最新建议是不要将测试和数据放在一起。我知道这是一个非常古老的 q/a,所以事情可能已经改变。您是否使用过类似 ..github.com/cheezy/data_magic 的东西以及对它或类似宝石的任何想法?
    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多