1

プライベート メソッド呼び出しをモック アウトすることができます。

   Public void StartProcess(string valueFound)
    {
        if(this.value == valuefound)
        {
            MockThisPriavteMethodCall();
        }

        AnotherPrivateMethodCallIDontNotWantToMockOut();
    }

この状況は、1 つのプライベート メソッドをテストしたいが、もう 1 つの結果をモックしたいということです。

上記の例では、メソッド呼び出し「MockThisPriavteMethodCall()」をモックできるようにしたいのですが、2 番目の「AnotherPrivateMethodCallIDontNotWantToMockOut()」を実行したいと考えています。

何らかの形式の期待を使用できますか?

これはRhino Mockで実行できますか?これは正しい考えですか?

追加: ViewModel クラスにあるコードをテストしようとしています。

上記の例は、これが数少ない public メソッドの 1 つであることを示しています。これらのメソッドは、さまざまなプライベート メソッドを呼び出します。これも多くのプライベート メソッドを呼び出します。

コードがいくつかの分岐を通過できるように、特定のパスと状況をテストする必要がありますか?それとも、それらの方法だけをテストする必要がありますか?

4

2 に答える 2

1

これを完全に行うためのクリーンな方法は実際にはありません。

メソッド呼び出しを変更して、protectedクラスから継承するテスト可能なクラスを作成し、それに対する期待を作成することでそれを行うことができます。

そうは言っても、Jon Skeet は正しいですが、ここで Mocking を間違って使用している可能性があります。メソッドからダミー値を返したいのは明らかで、メソッドを作成したらprotected、次のようにできます。

myclass.Stub(s => s.MockThisMethodCall()).Return("WhateverValueYouExpect"); 
于 2012-11-26T14:55:44.207 に答える