DRY Cucumber 脚手架 CRUD 步骤或场景
Posted
技术标签:
【中文标题】DRY Cucumber 脚手架 CRUD 步骤或场景【英文标题】:DRY Cucumber scaffolded CRUD steps or scenarios 【发布时间】:2014-01-01 04:28:43 【问题描述】:在使用 TDD 创建经过 Cucumber 测试的 Rails 应用程序时,拥有一组可重用的步骤或场景将很有用,这些步骤或场景可应用于任何测试核心 CRUD 步骤的模型。
我经常发现我搭建了初始 CRUD,然后在此基础上进行迭代,在我完成之前对核心功能进行测试会很好。
同样,可以迭代这些步骤本身,以在添加时处理任何定制功能。
这是否存在,或者是否有任何关于如何创建这种东西的指南?
感觉应该有一个生成器宝石。
顺便说一句,这种东西对于 Cucumber 初学者来说真的很有用,可以让他们了解一组好的步骤是什么样的。
【问题讨论】:
【参考方案1】:我不认为有什么宝石可以做到这一点,但您可以通过以下步骤自己完成:
Then /^I create a "([^"]*)" with:$/ do |entity, table|
create_entity entity, table
end
def create_entity( entity, table)
table.rows_hash.each do |field, value|
fill_field_with field, value
end
end
然后执行以下操作:
When I create a "User" with:
| Name | John |
| Last Name | Doe |
实现fill_field_with
可能有点棘手。首先,所有“实体”都应该有统一的创建/编辑/销毁方式。对于填写字段本身,您必须考虑字段可以是复选框、选择和简单文本。这适用于大多数领域:
Capybara::fill_in field, :with => value, :match => :prefer_exact
总结:这并不简单,但它是可行的。
【讨论】:
以上是关于DRY Cucumber 脚手架 CRUD 步骤或场景的主要内容,如果未能解决你的问题,请参考以下文章
行为驱动:Cucumber + Selenium + Java - Cucumber简单操作实例