用黄瓜测试外键

时间:2011-05-26 09:04:59

标签: ruby-on-rails cucumber

我正在尝试设置黄瓜功能的背景。理想情况下,我希望能够做到:

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,因此可以使用ID为7创建第一行,因此其他“子”行都不能访问它。名称不是唯一的,因此我无法在步骤定义中执行find_by_name。我有一种感觉,这将是一些丑陋的嵌套阵列解决方案。 任何想法如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

我不明白为什么你不能为配置测试选择唯一的名字?

答案 1 :(得分: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