【问题标题】:rails strange unit test failsrails奇怪的单元测试失败
【发布时间】:2011-11-26 15:21:25
【问题描述】:

我尝试运行这个最简单的单元测试:

   test "the truth" do
     assert true
   end

像这样:

ruby -Itest test/unit/my_model_test.rb

(文件中只有一个测试,实际上是整个站点)

此消息失败:

ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: column email is not unique: INSERT INTO "users"... [some values to insert here]

现在我确实有一个名为“users”的表,但除此之外,我从未要求对其进行任何测试,我什至也没有进行过此类测试。这个错误来自哪里?如何只运行我的测试?

编辑:如果有帮助,“用户”表来自设计 gem

【问题讨论】:

  • 你能发布完整的堆栈跟踪吗?您的项目中有固定装置吗?可能是它们被加载到未正确清除的数据库中。
  • my_model_test.rb 中的所有代码都是这样吗?

标签: ruby-on-rails ruby devise


【解决方案1】:

引用http://guides.rubyonrails.org/testing.html

Rails 默认自动从 用于单元和功能测试的 test/fixtures 文件夹。正在加载 涉及三个步骤:

  • 从对应夹具的表中删除所有现有数据
  • 将夹具数据加载到表中
  • 将夹具数据转储到 变量,以防您想直接访问它

所以我认为您需要检查这些固定装置。另外,我建议您阅读该教程。写的很好。

【讨论】:

猜你喜欢
  • 2010-09-21
  • 1970-01-01
  • 2020-06-22
  • 2014-10-01
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
相关资源
最近更新 更多