一般に、このコードをテストするだけでは生産性が向上しません。 私は他の答えには反対しますが、私は秘密のテストをしていないので、テストはその行動に意味があるはずです。
確かに、各メンバーの単体テストを書いて、主要なPIBをリファクタリングすることができます。これは生産的だろうか?あんまり。何が価値があるために、あなたはもう少し反射魔法と出来上がりを
しかし、必要があります。
[TestMethod]
public void PrivateListCanHaveObjectsAdded()
{
var target = new A();
var b = typeof(A).GetNestedType("B", BindingFlags.NonPublic);
var list = typeof(A).GetField("list", BindingFlags.Instance | BindingFlags.NonPublic);
var bInstance = Activator.CreateInstance(b);
var addMethod = typeof(List<>).MakeGenericType(b).GetMethod("Add");
var countProperty = typeof(List<>).MakeGenericType(b).GetProperty("Count");
addMethod.Invoke(list.GetValue(target), new object[] { bInstance });
Assert.AreEqual(1, countProperty.GetValue(list.GetValue(target)));
}
それは、C#コンパイラをテストするためにあなたの仕事ではありません。このリストは、実行時にアクセス可能なスコープ内では決して「null」にはなりません。実際の問題の代表例を示してください。 – CodeCaster