我正在编写一个使用SaS的网络应用程序。每个客户都有自己的db和app目录,所以我有一个rake任务,它创建了运行他们网站的所有必要的最小数据(种子数据):默认权限和角色,superadmin用户,已经填充的“us_states”表,一些本地仓库和终端(这是一个物流应用程序)。
我没有任何黄瓜情景,我刚开始构建一些。我是黄瓜的初学者。
我首先将种子数据任务放在Given行中,但这几乎适用于所有场景,并且对于那些查看场景的非程序员来说没有多大意义(对于人类来说,它是这样一个给定它不需要有意识地表达)所以我把它移到了hooks.rb。
我的第一个场景如下:
1 Feature: Place an order
2 In order to keep orders in the database
3 As a admin
4 I want to place orders
5
6 Scenario: Using common legs
7 Given I have 1 customers
8 And I'm on the homepage
9 And I follow "Place an Order"
10 When I select the customer
11 And I select the SSLine
12 And I click "Use Common Legs"
13 Then I should see "PICKUP AT"
14 And I should see "DELIVER TO" or "LOAD AT"
15 And I should see EMPTY RETURN
我的hooks.rb看起来像这样:
1 Before do
2 MinimumData.new('costi', '1234').populate #username and password
3 end
问题:
答案 0 :(得分:22)
我不知道黄瓜的before(:all)
当量。您可以做的是将种子添加到文件features/support/seeds.rb
,然后在features/support/env.rb
的顶部,并在要求environment.rb
放置该行的行下方:
require File.dirname(__FILE__) + '/seeds'
或者
#just write the code you want to execute directly into the env.rb file
这些是您在env.rb
Before do
#this code is run before each scenario
end
after do
#this code is run after each scenario
end
at_exit do
#this code is run at the end
end
答案 1 :(得分:7)
对Geoff Lanotte的回答进行了一次修正。它应该是
Before do # this code is run before each scenario end
有大写字母B.
但是,您可能希望将其放在功能/支持目录中的新文件中,而不是将此类代码放入env.rb文件中,例如:一个“hooks.rb”文件。这是因为如果升级cucumber-rails,则会自动重新生成env.rb文件。
答案 2 :(得分:3)
Geoff Lanotte有答案。我只是在hooks上添加了一个指向Cucumber wiki页面的链接,其中描述了这些和其他示例。