ruby-on-rails 由于Devise admin用户,Rails单元测试失败

4nkexdtk  于 9个月前  发布在  Ruby
关注(0)|答案(2)|浏览(71)

我有一个简单的单元测试:

def test_conversation_without_a_name_is_invalid
    conversation = Conversation.new
    assert conversation.name.blank?
    assert !conversation.valid?
end

失败的原因是:
1)错误:test_conversation_without_a_name_is_invalid(ConversationTest):ActiveRecord::RecordNotUnique:错误提示:错误提示:重复键值违反唯一约束“index_admins_on_email”错误:Key(email)=()已存在。
似乎由于某种原因,测试试图创建一个Devise管理员用户并失败,但我不知道为什么它首先要这样做,甚至不知道如何纠正它。
我在rails控制台上运行了同样的测试,它工作得很好,非常混乱。
有没有人遇到过这种情况,或者知道发生了什么?任何帮助将不胜感激!

rryofs0p

rryofs0p1#

在我的test_helper.rb中找到了一个fixtures:all语句,我还在学习Rails,但感谢阿方索的帮助。

xcitsw88

xcitsw882#

问题是在admins.ymlusers.yml中有两个“相同”的空对象“{}”,在创建第二个对象时抛出Key (email)=() already exists错误。删除fixtures:all将停止加载所有fixture,而是删除或注解第二个对象

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

相关问题