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

时间:2012-08-02 22:23:10

标签: c# .net unit-testing

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

public string SomeMethod(MethodInfo methodInfo);

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

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

我想要涵盖尽可能多的“不同”方法信息(或者更具体地说,尽可能多地传递不同的方法)。

我正在考虑两种方法,不确定这是否应该如何完成:

  1. 使用我需要的所有方法创建一个新的测试类。使用此类型的GetMethods()并迭代它们以将它们提供给我测试的方法。

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

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

    我们如何轻松解决此问题并为此特定方案创建强大的测试?

1 个答案:

答案 0 :(得分:1)

  

使用我需要的所有方法创建一个新的测试类。使用此类型   GetMethods()并迭代它们以将它们提供给我测试的方法。

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

  

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

如果SomeMethod中的逻辑具有针对各种类型的MethodInfo的特定案例逻辑,则按上述路线行进。