对接受MethodInfo对象的方法进行单元测试

本文关键字:方法 单元测试 对象 MethodInfo | 更新日期: 2024-09-24 21:06:51

我需要单元tess一个方法,该方法接收某个任意用户代码方法的MethodInfo对象(通过反射动态加载)。

public string SomeMethod(MethodInfo methodInfo);

我想使用不同的MethodInfo对象来练习这个方法。

最简单的方法是使用<type>.GetMethod("name")来检索MethodInfo对象,然后使用它调用测试的方法并根据结果断言。

我想介绍尽可能多的"不同"方法信息(或者更具体地说,尽可能多地传递不同的方法)。

我正在考虑两种方法,不确定是否应该这样做:

  1. 创建一个新的测试类,上面有我需要的所有方法。使用此类型的GetMethods()并迭代这些方法,将它们输入到我的测试方法中。

  2. 为每个方法创建一个单独的单元测试。

第一个选项更容易扩展(向测试类添加一个新方法),但包含多个断言(针对它所拥有的每个MethodInfo实例的断言)。

我们如何轻松解决这个问题,并为这个特定场景创建一个强大的测试?

对接受MethodInfo对象的方法进行单元测试

用我需要的所有方法创建一个新的测试类GetMethods()并迭代这些方法,将它们输入到我的测试方法中。

如果SomeMethod中的逻辑(处理此MethodInfo)具有处理所有类型MethodInfo的通用逻辑,则按上述路线进行。

为每个方法创建一个单独的单元测试。

如果SomeMethod中的逻辑对各种类型的MethodInfo有特定的逐案逻辑,那么按照上面的路线进行。