Ruby:破坏用户的迷你测试错误

标签 ruby minitest fixtures destroy

我是 ruby​​ 的新手,正在创建我的第一个测试套件。

在编写销毁用户的迷你测试时出现以下错误:

ERROR["test_should_destroy_when_logged_in_as_a_admin", UsersControllerTest]
test_should_destroy_when_logged_in_as_a_admin#UsersControllerTest ActionController::UrlGenerationError: 
No route matches {:action=>"/users/608331937", :controller=>"users"}

测试内容如下:

        def setup
        @user_destroy = users(:destroyme)
        @user_admin = users(:admin)
    end

    test "should destroy when logged in as a admin" do
        log_in_as(@user_admin)
        assert @user_admin.admin?, "not admin"
        assert_difference 'User.count', -1 do
            delete user_path(@user_destroy)
        end
    end

和 fixture :

admin:
 name: Matthias Havenaar
 email: my@mail.com
 password_digest: <%= User.digest('password') %>
 admin: true

destroyme:
 name: Destroy Me
 email: destroy@me.com
 password_digest: <%= User.digest('password') %>
 admin: true

用户 ID 或 user_path 似乎有问题。知道我在这里做错了什么吗?

最佳答案

试试这个,我希望它会起作用。

替换

delete user_path(@user_destroy)

delete :destroy, id: @user_destroy

关于Ruby:破坏用户的迷你测试错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34809963/

相关文章:

ruby-on-rails - Rails 大写名称命名约定

ruby - 在 Mac 上通过 export http_proxy 使用 Ruby 和 Charles Proxy

ruby-on-rails - 此 Rails 代码属于应用程序 Controller 吗?

Ruby MiniTest UnitTest Stubbing 类方法仅用于一次测试

testing - 用于使用 phpunit 进行测试的临时 Doctrine2 装置

ruby-on-rails - 使用 acts_as_taggable_on 为模型创建 fixture 数据

ruby - 哈希上的继承钩子(Hook)

ruby-on-rails - Rails Minitest 没有运行测试类

php - 在 yii2/codeception 数据文件中引用 fixture 记录