[RSpec] privateメソッドをテストする方法
Ruby on Rails + RSpec で privateメソッドをテストする方法をメモ。
下記のように、Userモデルに private_method というprivateメソッドを作成した場合、
■ app/models/user.rb
class User < ActiveRecord::Base def public_method "public" end private def private_method "private" end end |
Rspec でのモデルのテストは下記のように、user.send(:private_method) で呼び出して行う。
■ spec/models/user_spec.rb
require 'spec_helper' describe User do it 'public' do user = User.new user.public_method.should == "public" end it 'private' do user = User.new user.send(:private_method).should == "private" end end |
【参考】
・UKSTUDIO – RSpecでprivateメソッドをテストする