问题描述
|
我正在尝试设置黄瓜功能的背景。理想情况下,我希望能够做到:
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。我感觉这将是一些丑陋的嵌套数组解决方案。
任何想法如何实现这一目标?
解决方法
我不明白为什么您不能出于配置测试的目的而选择唯一名称?
,我最终在步骤定义中这样做的方式:
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