scribble

吕小荣

Blog Friends RSS About

如何为私有方法写测试

23 December, 2013

今天第一次给 Rails 的私有方法写测试,查阅了些资料,目前比较流行的写法有两种。

class MyClass
  private

  def foo
    true
  end
  
  def bar
    true
   end
end

方法1:修改私有方法为 public

重新打开这个类,修改私有方法为 public。

class MyClass
  public :foo
end

class GoodsOrderTest < ActiveSupport::TestCase
 ...
 ...
end

方法2:使用 send

test "should foo" do
  instance = MyClass.new
  instance.send(:foo)
end

推荐第二种方法。

参考资料

Stackoverflow: What’s the best way to unit test protected & private methods in Ruby?