【问题标题】:Testing for destroyed users in devise在设计中测试被破坏的用户
【发布时间】:2015-03-04 08:24:52
【问题描述】:

我目前在测试销毁使用 devise 生成的用户时遇到问题。

require 'test_helper'
class UserTest < ActiveSupport::TestCase
  # test "the truth" do
  #   assert true
  # end
  def setup
    @user = User.new(email: "user@example.com")
  end

  test "Should delete User"do
    @user.save
    assert_difference 'User.count', -1 do
     @user.destroy
    end
  end

end

目前的测试 失败并显示差异为 0。我想知道如何测试它(即使我知道 user.destroy 在我在 Rails 控制台中运行时有效)。

一切顺利 D

【问题讨论】:

    标签: ruby-on-rails unit-testing ruby-on-rails-4 testing devise


    【解决方案1】:

    我认为,保存用户@user.save 存在问题。这是由于验证错误。默认Devises User 有一个password 作为必填字段。

    尝试改变:

    def setup
      @user = User.new(email: "user@example.com")
    end
    

    到:

    def setup
      @user = User.new(email: "user@example.com",
                       password: "SuperS3cret")
    end
    

    @user 应该被正确保存,它使@user.destroy 可以工作,assert_difference 可以通过。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      相关资源
      最近更新 更多