特定のエッジケースをテストするための単体テストを作成しようとしています。クラスのプライベートプロパティを保持するためにReflectionを使用しています。C#Reflection SetValue
Iは
var getPrivateProperty = obj.GetType().GetProperty("somename", BindingFlags.Instance | BindingFlags.NonPublic);
getPrivateProperty.SetValue(obj, newValue, null);
を使用することができる一方で、私が持っている問題は、プロパティは、クラス内のNULLに設定されており、この方法では、オブジェクトのインスタンスに次に設定されることです。
:私の特定のテストでは、私はこれを試してみました私は、オブジェクトのインスタンスにこのプロパティを設定する必要がありますが、私はまだ「オブジェクトのインスタンスに設定されていないオブジェクトの悪名高いエラーを取得しています
getPrivateProperty.SetValue(obj, new List<string>() {item, item2}, null);
私のテストを完了するために、オブジェクトのインスタンスであるためにプロパティを設定する方法はありますか?
マーク性内部および使用[ 'InternalsVisibleToAttribute'(https://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute。 aspx)をテストプロジェクトと一緒に使用します。 – Romoku
何がnullであるかを把握し、それにnullを与えないでください。 –
あなたは、あなたが反映しているクラスを含む[mcve]を投稿できますか?あなたが作業しているものを正確に知らなくてもリフレクションの問題をデバッグするのは難しいです。 –