在设计中测试被破坏的用户

Testing for destroyed users in devise

我目前在测试销毁使用 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

我认为,保存用户有问题@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通过

祝你好运!