TargetContainerDto
2 つの内部プロパティを持つpublic class( ) があります。列挙型と、その列挙型の値を含む型。
型を単体テストしようとしていますが、問題があります。
internal enum TargetContainerType
{
Endpoint,
Group,
User,
UserGroup
}
internal TargetContainerType Type { get; set; }
これは私のテストクラスのリフレクションコードです
public void setType(TargetContainerDto t, int val)
{
BindingFlags bf = BindingFlags.NonPublic | BindingFlags.Instance;
PropertyInfo pi = t.GetType().GetProperty("Type", bf);
pi.SetValue(t, val, null);
}
public TargetContainerDto setTypeTo(TargetContainerDto t, int val)
{
setType(t, val);
return t;
}
TargetContainerDto
Type よりも多くのプロパティがありますが、公開されているため、テストしても問題ありません。は、型に応じてiconURL
定義された文字列です。TargetContainerDto
ここに私のテスト方法があります:
public void DefaultSubGroupIcon()
{
var o1 = new TargetContainerDto
{
Id = 1234,
DistinguishedName = "1.1.1.1",
SubGroup = "test",
};
setType(o1, 3);
Assert.AreEqual(o1.IconUrl, "/App_Themes/Common/AppControl/Images/workstation1.png");
}
typevalue を設定する必要があるときに、テスト メソッドで setTypeTo を呼び出しますが、MethodAccessException
. 列挙型にアクセスできないためだと思います。リフレクションを介して列挙型にアクセスするにはどうすればよいですか?
ありがとう