2011-05-26 218 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