2011-05-26 217 views
2

我正在嘗試設置黃瓜功能的背景。理想我想能夠做到:用黃瓜測試外鍵

Given the following folders exist: 
    | id | parent_id | name    | 
    | 1 | nil  | folder1   | 
    | 2 | nil  | folder2   | 
    | 3 | 2  | folder3   | 
    | 4 | 1  | folder4   | 
    | 5 | 1  | folder5   | 
    | 6 | 5  | folder6   | 

但是我不能這樣做,因爲我不能設置一個特定型號的ID,因此第一行可能與7,因此ID來創建其他「子」行都不能訪問它。名稱不是唯一的,所以我無法在步驟定義中執行find_by_name。我有一種感覺,它會是一些醜陋的嵌套陣列解決方案。 任何想法如何實現這一目標?

回答

0

我結束了我的步驟定義做它的方式:

Given /^the following folders exist:$/ do |table| 
    table.hashes.each{|f| 
    folder = Folder.new(f) 
    folder.save 
    ActiveRecord::Base.connection.execute('UPDATE folders SET id = '+f['id'].to_s+' WHERE id = '+folder.id.to_s) 
    } 
end 
1

我不明白爲什麼你不能選擇唯一的名稱來配置測試的目的?

+0

這是不夠的,因爲我需要能夠應付(和測試)重名。 – Yule 2011-05-26 14:11:20