对接受MethodInfo对象的方法进行单元测试
本文关键字:方法 单元测试 对象 MethodInfo | 更新日期: 2024-09-24 21:06:51
我需要单元tess一个方法,该方法接收某个任意用户代码方法的MethodInfo对象(通过反射动态加载)。
public string SomeMethod(MethodInfo methodInfo);
我想使用不同的MethodInfo对象来练习这个方法。
最简单的方法是使用<type>.GetMethod("name")
来检索MethodInfo对象,然后使用它调用测试的方法并根据结果断言。
我想介绍尽可能多的"不同"方法信息(或者更具体地说,尽可能多地传递不同的方法)。
我正在考虑两种方法,不确定是否应该这样做:
创建一个新的测试类,上面有我需要的所有方法。使用此类型的GetMethods()并迭代这些方法,将它们输入到我的测试方法中。
为每个方法创建一个单独的单元测试。
第一个选项更容易扩展(向测试类添加一个新方法),但包含多个断言(针对它所拥有的每个MethodInfo实例的断言)。
我们如何轻松解决这个问题,并为这个特定场景创建一个强大的测试?
用我需要的所有方法创建一个新的测试类GetMethods()并迭代这些方法,将它们输入到我的测试方法中。
如果SomeMethod
中的逻辑(处理此MethodInfo)具有处理所有类型MethodInfo的通用逻辑,则按上述路线进行。
为每个方法创建一个单独的单元测试。
如果SomeMethod
中的逻辑对各种类型的MethodInfo有特定的逐案逻辑,那么按照上面的路线进行。