用黄瓜测试外键

问题描述

| 我正在尝试设置黄瓜功能的背景。理想情况下,我希望能够做到:
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 
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...