テスト対象関数の中の関数の、privateフィールドにアクセスする方法はありますか。
例えば、以下のソースでは、sample1クラスのmethod1のテストを行っています。 method1の中の関数method2のprivateフィールド _resultの値にfalseをセットし、method1の戻り値がfalseになるようにしたいです。
下記のようにprivateObject を使って書いてみたのですが、 _resultがtrueのままになってしまいます。
c#
1public class sample1 2{ 3public bool method1 4{ 5bool ret = sample2. method2(); 6return ret; 7} 8}
c#
1public class sample2 2{ 3private bool _result = true 4 5public bool method2 6{ 7return _result; 8} 9}
c#
1[TestMethod()] 2public void method1Test() 3{ 4var instance = new sample1(); 5 6var instance2 = new sample2(); 7var pbObj = new PrivateObject(instance2); 8pbObj.SetField("_result", false); 9 10var ret = instance.method1(); 11Assert.IsFail(ret); 12} 13
あなたの回答
tips
プレビュー