DRY Cucumber搭建CRUD步骤或场景

时间:2013-12-13 11:55:28

标签: ruby-on-rails tdd cucumber dry scaffolding

使用TDD创建Cucumber测试的Rails应用程序时,有一套可重用的步骤或方案可用于测试核心CRUD步骤的任何模型,这将是有用的。

我经常发现我支持最初的CRUD,然后在其上进行迭代,在我做之前测试核心功能会很好。

同样,这些步骤本身可以在处理任何定制功能时进行迭代。

这是否存在,或者是否有关于如何创建此类事物的指南?

感觉应该有一个发电机宝石。

除此之外,对于黄瓜初学者来说,这种事情可能非常有用,让他们了解一组好的步骤是什么样的。

1 个答案:

答案 0 :(得分:0)

我不认为那里有宝石,但你可以通过以下步骤自己完成:

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}

总结:这不是直截了当的,但它是可行的。