0

私のレールモデルにはいくつかのプライベートメソッドがあります。個別にスペックアウトしたい(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

プライベート メソッドをテストするためにクラスをラップする必要はありません。代わりにsendを使用できます。

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