rspecでprivate methodを呼び出したい時の方法
privateメソッドを実行したいけど、できないよ!って場合の方法です。
send
を使えばできます。
class Foo private def foo puts 'hoge' end end x = Foo.new x.send(:foo) hoge => nil x.foo NoMethodError: private method `foo' called for #<Foo:0x007fa279135010>
こうなるので、send
を使ってメソッドを呼び出せば、private methodもテストできます。
これは便利だ。