我正在测试一个基本上是消息处理应用程序的应用程序 - 一条消息进来,它的内容被分析,然后它被发送到其他地方进行处理。该应用程序不是用Ruby构建的。
正如您可能想象的那样,主要测试方法包括生成一大堆不同类型(非常复杂)的消息,将它们加载到应用程序中,等待几秒钟,然后确保将它们发送到正确的位置。 / p>
从功能上来说,测试进展顺利,但我目前已经获得了所有的测试信息。 Ruby代码中定义的所需消息目标 - 我想将它们移动到YAML文件或(第二选择)数据库。我更喜欢在数据库上使用YAML文件,因为它更容易进行版本控制,非技术测试人员可以直接编辑消息内容。
是否有“推荐”方式在Cucumber中实施此类数据管理?它有点像夹具方法有道理,但对我来说固定装置总是涉及从文件填充数据库然后使用数据库进行测试,我不是100%肯定这是这个特定的最佳/最简单的适合问题
答案 0 :(得分:3)
我相信你最满意的是情景大纲。您可以创建一个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 |
每个示例会变为绿色,红色或黄色,具体取决于它是否有效,失败或待处理。