前提・実現したいこと
ジェネリック型のStaticクラスのprivateメソッドの単体テストを実施したいです。
ジェネリック型でないStaticクラスはInvokeStaticメソッドで呼び出せたのですが、ジェネリック型のStaticクラスの呼び出し方は調べても分かりませんでした。
InvokeStatic(string name, Type[] parameterTypes, object[] args, Type[] typeArguments)で呼び出すのかなと思ったのですが、引数に何を入れればよいか分かりませんでした。
ジェネリック型の型引数としては下記テスト対象ソースコード内のTestenumを想定しています。
ご教授いただければ幸いです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
System.MissingMethodException:メソッド 'Project1.Class.Num' が見つかりません
テスト対象ソースコード
c#
1 public class Class 2 { 3 public enum Testenum 4 { 5 Defult = 0, 6 Normal = 1 7 } 8 9 private static T Num<T>(T a) 10 { 11 return a; 12 } 13 }
呼び出し側ソースコード
c#
1 [TestMethod()] 2 public void NumTest() 3 { 4 PrivateType privateType = new PrivateType(typeof(Class)); 5 var actual = privateType.InvokeStatic("Num", new Type[] { typeof(Testenum) }, Testenum.Defult, new Type[] { typeof(Testenum) }); 6 }
補足情報(FW/ツールのバージョンなど)
Visual Studio 2019 Community
C#

回答1件
あなたの回答
tips
プレビュー