我的rails模型中有一些私有方法。我想单独指出它(使用rspec)。
我这样做
class TestModelA < ModelA
def public_wrapper_method_A
private_method_A_from_ModelA
end
end
我为TestModelA编写规范#public_wrapper_method_A
我认为为私有方法编写规范是有好处的。
为这些私有方法编写测试的最佳方法是什么。
你觉得怎么样?优点/缺点?答案 0 :(得分:1)
我通常会为私有方法预留一个context
组,然后为每个方法设置一个describes
块。在块中,我定义了一个调用私有方法的辅助方法,然后it
块使用call_xxx
方法来获取私有方法。
context "private methods" do
describe "#some_private_method" do
def call_some_private_method
some_obj.send(:some_private_method)
end
it "should return 'something'" do
call_some_private_method.should == 'something'
end
end
end
答案 1 :(得分:0)
您不必将您的类包装起来测试私有方法。您可以改为使用send。
object.send(:foo_private_method)