1. ホーム
  2. ruby-on-rails

[解決済み] Rspec, Rails: コントローラのプライベートメソッドをどのようにテストするか?

2022-07-21 01:16:50

質問

コントローラがあります。

class AccountController < ApplicationController
  def index
  end

  private
  def current_account
    @current_account ||= current_user.account
  end
end

プライベートメソッドのテスト方法 current_account をrspecでテストするには?

追伸:私はRspec2とRuby on Rails 3を使用しています。

どのように解決するのですか?

インスタンス・エヴァルを使用する

@controller = AccountController.new
@controller.instance_eval{ current_account }   # invoke the private method
@controller.instance_eval{ @current_account }.should eql ... # check the value of the instance variable