0

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

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

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

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

4

1 回答 1

4

我相信你会最满意的是一个场景大纲。您也许可以创建一个 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 |

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

于 2009-09-01T02:55:49.403 回答