创建并填充测试数据库以运行Cucumber测试

时间:2014-12-01 15:11:23

标签: ruby-on-rails cucumber

我想测试使用带有Cucumber的PostgreSQL数据库的Ruby-on-Rails网站。

我也安装了FactoryGirl gem,所以我可以创建工厂。

据我所知,为测试数据库创建数据的典型方法是编写Gherkin表并将它们放在黄瓜文件的后台块中。但我已经有了一个Ruby脚本,可以创建适合测试数据库的samle数据。

然而,我目前迷失在Cucumber的环境中。您能否建议如何让Cucumber在每次测试之前运行我的Ruby脚本填充测试数据库,以及如何在每次测试后清理测试数据库。显然,我的google-fu不足以完成这项任务。

2 个答案:

答案 0 :(得分:1)

只需:

  1. 将黄瓜规则I have 4 clock in the pocket添加到 features / clock.feature (例如)。

  2. features / step_definition / clock_steps.rb (例如)中实施规则,以创建定义数量的Clock模型和单个Pocket模型。并将它们联系起来:

    When /I have (\d+) clock in the pocket/ do |amount|
       pocket = FactoryGirl.create :pocket
       amount.times { FactoryGirl.create :clock, pocket: pocket }
    end
    
  3. 因此,您将获得一些填充的数据。

    如果您想预定义大多数情况下的步骤,您可以:

    • 创建一个名为I have basic clock setup的较大步骤(例如),然后将其定义为上一步,但在其中添加其他必需步骤。

    • 使用步骤递归(这是非推荐方式),如下所示:

      When /I have basic clock setup/ do |amount|
         step 'I have 4 clock in the pocket'
      end
      

答案 1 :(得分:0)

我最终使用Cucumber测试在.rb文件中使用Before do块:

Before do
  <code to populate the test database here>
end

Given /first condition/
  do some stuff
end

...and so on