我想测试使用带有Cucumber的PostgreSQL数据库的Ruby-on-Rails网站。
我也安装了FactoryGirl gem,所以我可以创建工厂。
据我所知,为测试数据库创建数据的典型方法是编写Gherkin表并将它们放在黄瓜文件的后台块中。但我已经有了一个Ruby脚本,可以创建适合测试数据库的samle数据。
然而,我目前迷失在Cucumber的环境中。您能否建议如何让Cucumber在每次测试之前运行我的Ruby脚本填充测试数据库,以及如何在每次测试后清理测试数据库。显然,我的google-fu不足以完成这项任务。
答案 0 :(得分:1)
只需:
将黄瓜规则I have 4 clock in the pocket
添加到 features / clock.feature (例如)。
在 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
因此,您将获得一些填充的数据。
如果您想预定义大多数情况下的步骤,您可以:
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