【发布时间】:2012-01-16 09:30:27
【问题描述】:
我目前正在尝试将 cucumber 和 capybara 一起用于 web-app 的一些集成测试。
有一个测试,我只想点击 Web 应用程序的所有(或大部分)页面,看看是否没有返回错误。我希望之后能够查看哪些页面无法正常工作。
我认为场景大纲是最好的方法,所以我就这样开始了:
Scenario Outline: Checking all pages pages
When I go on the page <page>
Then the page has no HTTP error response
Examples:
| page |
| "/resource1" |
| "/resource2" |
...
我目前有 82 页,效果很好。
但是我发现这种方法不可维护,因为可能会有新资源和将被删除的资源。
更好的方法是从某处加载表中的数据(解析索引页面的 HTML、数据库等...)。
但我不知道该怎么做。
我遇到了article about table transformation,但我不知道如何在场景大纲中使用此转换。
有什么建议吗?
好的,因为有些混乱。如果你看看上面的例子。我要做的就是改变它,使表格几乎是空的:
Scenario Outline: Checking all pages pages
When I go on the page <page>
Then the page has no HTTP error response
Examples:
| page |
| "will be generated" |
然后我想添加一个看起来像这样的转换:
Transform /^table:page$/ do
all_my_pages.each do |page|
table.hashes << {:page => page}
end
table.hashes
end
我在同一个文件中指定了转换,但它没有被执行,所以我假设转换不适用于场景大纲。
【问题讨论】:
-
是的,Transform 只对步骤参数表而不是大纲表进行操作。
标签: ruby cucumber integration-testing