【问题标题】:DRY Cucumber scaffolded CRUD steps or scenariosDRY Cucumber 脚手架 CRUD 步骤或场景
【发布时间】:2014-01-01 04:28:43
【问题描述】:

在使用 TDD 创建经过 Cucumber 测试的 Rails 应用程序时,拥有一组可重用的步骤或场景将很有用,这些步骤或场景可应用于任何测试核心 CRUD 步骤的模型。

我经常发现我搭建了初始 CRUD,然后在此基础上进行迭代,在我完成之前对核心功能进行测试会很好。

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

这是否存在,或者是否有任何关于如何创建这种东西的指南?

感觉应该有一个生成器宝石。

顺便说一句,这种东西对于 Cucumber 初学者来说真的很有用,可以让他们了解一组好的步骤是什么样的。

【问题讨论】:

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


    【解决方案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}
    

    总结:这并不简单,但它是可行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-25
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      相关资源
      最近更新 更多