Ruby on Rails 4灯具需要表格

时间:2016-01-23 14:11:02

标签: ruby-on-rails ruby-on-rails-4 activerecord fixtures

使用Rails时的灯具(我的环境Rails 4.2)

为什么在运行测试时,为什么在灯具存在但是没有相同名称的表时会出错?为什么灯具需要在表格中有匹配的列?

示例1:(表格不存在)

  • 创建一个夹具joes.yml(Joes表不存在)
  • 运行rake test:integration
  • 您将得到的错误是:

ActiveRecord :: StatementInvalid:SQLite3 :: SQLException:没有这样的表:joes:DELETE FROM“joes”

示例2:(表存在,但列不存在)

  • 创建夹具products.yml。这种情况表产品确实存在
  • 在products表中添加一个yml块,其名称为您没有的列。示例在products.yml文件中添加条目 other:bla
  • 运行rake test:integration

ActiveRecord :: Fixture :: FixtureError:表“products”没有名为“other”的列。

我认为我可以在我的测试中使用灯具作为参考的常用位置,但不需要匹配我的数据库。

1 个答案:

答案 0 :(得分:2)

灯具是您的数据,它们仍然需要一个去处!

" Fixtures允许您在测试运行之前使用预定义数据填充测试数据库。夹具是用YAML编写的数据库独立的。每个型号有一个文件。"

http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures

它们不是某种内存替换测试数据库,它们只允许您使用值预先填充测试数据库,这样您可以更方便地进行测试,而无需在设置时放入大量数据试运行。这就是全部。