2013-03-31 25 views
0

我想测试以下内容:与黄瓜和种子数据混淆

- >作为用户,我希望能够创建帖子。每个帖子都有内容,还有一个类别(这是另一个模型),我应该可以从下拉列表中进行选择。

我有以下步骤:

When /^I create a post with valid data$/ do 
    visit new_post_path 
    # Here it would go the fill for content 
    # Here it would go the select of category 
end 

我的问题是:我应该在哪里定义的类别?在种子文件或..?

编辑:我的疑惑是,是,例如在我的(形式)查看我:

<div class="field"> 
    <%= f.label :category %><br /> 
    <%= f.select "category_id", options_from_collection_for_select(Category.all, "id", "name") %> 
</div> 

一旦从我的步骤定义我参观了“新”的道路,这将访问视图,但Category.all将不会返回任何内容。我如何解决这个问题?

感谢

回答

2

任何背景设置你想要的,即你的测试依赖的东西应该在给定部分中指定。

Background: 
    Given Categories exist 

然后,您可以在步骤中指定您希望可用于视图的项目。例如FactoryGirl.create(:category)或其他

当Given与Background一起指定时,它将在文件中的每个场景之前运行,非常适合设置依赖关系。

0

可以播种的测试数据库,或者您也可以使用宝石一样Fabrication与序列,它会允许你这样做产生如独特的价值观:

Fabricate.sequence(:category) { |i| "Category #{i}" } 
# => "Category 0" 
# => "Category 1" 
# => "Category 2"