2013-03-31 67 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"