【发布时间】:2016-04-30 02:28:42
【问题描述】:
使用 Rails 时的固定装置(我的环境 Rails 4.2)
为什么在运行测试时,当夹具存在但没有同名表时会出错?以及为什么夹具需要在表格中有匹配的列?
示例 1:(表不存在)
- 创建一个fixture joes.yml(Joes 表不存在)
- 运行 rake 测试:集成
- 你会得到的错误是:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: joes: DELETE FROM "joes"
示例 2:(表存在,但列不存在)
- 创建一个夹具 products.yml。在这种情况下,表 Products 确实存在
- 添加一个 yml 块,其名称是您在 products 表中没有的列的名称。示例在 products.yml 文件中添加一个条目 other: bla
- 运行 rake 测试:集成
ActiveRecord::Fixture::FixtureError:表“products”没有名为“other”的列。
我认为我可以在测试中使用固定装置作为参考,但不需要匹配我的数据库。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 activerecord fixtures