プライベートメソッドを RSpec でテストする方法

結論

sendメソッドを使ってプライベートメソッドを呼び出す。

具体例

メソッドの呼び出し

例えばfoobarメソッドがプライベートメソッドであるとする。その際は次のようにfoobarメソッドが呼び出せる。

obj.send(:foobar)

テストを書く

あとはこれを用いて例えば以下のようなテストが書ける。

expect(obj.send(:foobar)).to eq('Hello, send method!')
Powered by はてなブログ