【问题标题】:Trouble on evaluating other model data评估其他模型数据时遇到问题
【发布时间】:2011-09-17 19:58:39
【问题描述】:

我正在使用 Ruby on Rails 3.0.9 和 RSpec 2。在我的规范文件中,我有如下代码:

describe User do
  let(:authorizations) { Authorization.all.map(&:name) }

   it "should have a 'registered' value" do
     authorizations.should include("registered")
   end
end

当我运行上述测试时,我得到:

User should have a 'registered' value
Failure/Error: authorizations.should include("registered")
expected [] to include "registered"
  Diff:
  @@ -1,2 +1,2 @@
  -registered
  +[]

是否可以解决上述错误\问题?如果是这样,我该怎么办?

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3 testing rspec


【解决方案1】:

以上内容告诉我,您的测试数据库中有所有空表。您应该考虑 seeding 您的开发/测试数据库。 (如果您认为 Authorization 是一种查找实体)

使用 factory girl 在规范的 before 块中为自己创建一些测试数据。

【讨论】:

  • 在您发布的与播种相关的博客文章中(在结尾处)有这句话:“但是,不要过分使用 seed.rb 来测试或暂存数据集——它应该只用于您的应用程序运行所需的基本数据”。那么,我应该在测试数据库中播种数据吗?
  • 就像我说的那样,如果您认为授权表只包含您希望在应用程序投入生产时预先填充的查找数据,那么可以。播种您的开发数据库并进行测试。当我说查找时,我的意思是,一个表将包含一小组值,这些值永远不会由应用程序创建,并且预计会在您的应用程序启动时出现。对我来说,授权听起来像是一项,但这取决于您的域。
  • 查看this 并详细了解“查找”数据的含义以及应该播种什么以及何时应该使用夹具或工厂女孩。
猜你喜欢
  • 2011-01-17
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多