使用Minitest存根任务实例

And*_*rdo 5 ruby-on-rails mocha.js minitest doorkeeper

如果不使用摩卡的any_instance,我该如何做?我只是想不使用Rspec的情况下测试这里描述的受保护控制器.

class PortfoliosControllerTest < ActionController::TestCase

  setup do
    @portfolio = portfolios(:p2)
    user = @portfolio.user

    token = Doorkeeper::AccessToken.create!(application_id: 'minitest',
                                            resource_owner_id: user.id)
    PortfoliosController.any_instance.stubs(:doorkeeper_token).returns(token)
  end
end
Run Code Online (Sandbox Code Playgroud)

blo*_*age 5

您不需要存根任何PortfoliosController实例,只需要测试正在使用的实例.这在@controller变量中可用,如ActionController :: TestCase文档中所述.

class PortfoliosControllerTest < ActionController::TestCase

  setup do
    @portfolio = portfolios(:p2)
    user = @portfolio.user

    token = Doorkeeper::AccessToken.create!(application_id: 'minitest',
                                            resource_owner_id: user.id)
    @controller.stubs(:doorkeeper_token).returns(token)
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 不需要摩卡是我问题的一部分。我怎样才能只使用 Minitest 来做到这一点? (4认同)
  • 由于控制器测试是 Rails 5 中的集成测试,因此这不再有效。#sadpanda (2认同)