Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

Ruby を 256 倍使うための本 極道編のまとめ (6)

private method のテストをしたい場合、ToPublic モジュールを使う。 ToPublic モジュールを include して、テスト対象を instantiate するときに to_public メソッドを利用する。次のような感じ。

 ...
require "runit/topublic"
class TestHoge < RUNIT::TestCase
 ...
  include RUNIT::ToPublic
  def setup
    @hoge = to_public(Hoge).new
  end
 ...
end

RUNIT::ToPublic#to_public メソッドは、クラス名を引数にとり、そのクラスの private, protected メソッドのアクセス制御を public にしたものを無名クラスとして返す。