2017-06-21 11 views
0

私はこのチュートリアル、https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest.net標準テストporjectでプライベートオブジェクトをテストする方法は?

を次のですが、私はタイプPrivateObjectを用意していないので、.NET標準の2.0プロジェクトにプライベートオブジェクトをテストすることが可能である場合、私は疑問に思って。

ありがとうございました。それらをテストするために、次のいずれかを実行しなければならないので、

答えて

1

プライベートオブジェクトは、クラスだけの身体の中にアクセスできます。

  1. または
  2. がどの意志パブリックメソッドを実装するプライベートオブジェクトを公開しますあなたはいつもリフレクションを使用することができます
0

これらのプライベートオブジェクトと対話

ClassToTest obj = new ClassToTest(); 
Type t = typeof(ClassToTest); 

FieldInfo f = t.GetField("field", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); 
f.SetValue(obj, "Don't panic"); 

t.InvokeMember("PrintField", 
    BindingFlags.InvokeMethod | BindingFlags.NonPublic | 
    BindingFlags.Public | BindingFlags.Instance, 
    null, obj, null); 

あなたは、このためのヘルパークラスを記述する必要があり、さもなければ、あなたのテストは同じコードの多く

P.S.をconatinますコードのサンプルはhere

です
関連する問題