我需要对一个接收任意用户代码方法的MethodInfo对象的方法进行单元测试(通过反射动态加载)。
public string SomeMethod(MethodInfo methodInfo);
我想使用不同的MethodInfo对象来练习这个方法。
最简单的方法是使用<type>.GetMethod("name")
检索MethodInfo对象,然后使用它调用测试方法并对结果进行断言。
我想涵盖尽可能多的“不同”方法信息(或更具体地说,要传入尽可能多的不同方法)。
我正在考虑两种方法,不确定是否应该这样做:
使用我需要的所有方法创建一个新的测试类。使用这种类型的 GetMethods() 并对其进行迭代以将它们提供给我的测试方法。
为每个方法创建一个单独的单元测试。
第一个选项更容易扩展(向测试类添加新方法),但包含多个断言(针对它拥有的每个 MethodInfo 实例进行断言)。
我们如何轻松解决这个问题并为这个特定场景创建一个健壮的测试?