ruby-on-rails - 将索引添加到电子邮件列是单元测试失败的罪魁祸首

标签 ruby-on-rails unit-testing testing devise indexing

我是 devise 和 rails 的新手,我刚刚将 devise 与我的示例应用程序集成在一起。我注意到在创建用户 模型后,我的所有单元测试都失败了。我试图缩小范围,发现即使是为 user_test.rb 生成的断言“真相”也失败了:

ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: \
    column email is not unique: INSERT INTO "users" (...

一旦我注释掉 add_index ...

# add_index :users, :email, :unique => true

... 并重新运行 rake db:test:load 并使用 ruby -I test test/unit/user_test.rb 重新运行测试,它通过了。

有没有人遇到过这种情况?

最佳答案

如果您刚刚生成了设计模型,则还生成了一个或多或少包含以下内容的夹具:

one: {}
# column: value
#
two: {}
#  column: value

这个装置试图创建两个用户,使用相同的(不存在的)电子邮件。替换为:

one:
  email: test1@test.com

two:
  email: test2@test.com

它将修复这个错误。

关于ruby-on-rails - 将索引添加到电子邮件列是单元测试失败的罪魁祸首,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769758/

相关文章:

ruby-on-rails - Rails 资源路由具有多个值的 ID

ruby-on-rails - 如何在 Heroku 上提供嵌套的静态内容?

c# - 人们如何使用 Entity Framework 6 进行单元测试,你应该打扰吗?

c++ - 将线程逻辑与业务逻辑解耦?

ruby-on-rails - 测试 Sidekiq 的重试队列

ruby-on-rails - 如何使用 ActiveAdmin 创建 STI 子类的对象

ruby-on-rails - 未定义的方法 `activated?'

c# - Package Wizard 集成测试中的 NullReferenceException

ruby-on-rails - POST 成员路由的 Rspec 测试失败

javascript - 如何将数据存储在存储在变量中的数组中?