0

我的 Rails 模型中有一些私有方法。我想单独指定它(使用 rspec)。

我做这样的事情

  class TestModelA < ModelA
    def public_wrapper_method_A
      private_method_A_from_ModelA
    end
  end 

我为 TestModelA#public_wrapper_method_A 编写规范

我认为为私有方法编写规范很有用。

为这些私有方法编写测试的最佳方法是什么。

你们有什么感想 ?优点缺点?

4

2 回答 2

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
于 2012-09-13T19:58:22.303 回答
0

您不必包装您的类来测试私有方法。您可以改用发送

object.send(:foo_private_method)
于 2012-09-13T19:56:35.590 回答