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 的步骤中获得场景?

行为驱动:Cucumber + Selenium + Java - Cucumber简单操作实例

Cucumber 场景未加入步骤代码

.net core SPA Angular中的脚手架管理员CRUD

Cucumber 6 未定义的自定义步骤

简单的类似 java 脚手架的 CRUD 生成器