0

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

public string SomeMethod(MethodInfo methodInfo);

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

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

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

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

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

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

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

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

4

1 回答 1

1

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

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

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

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

于 2012-08-02T22:38:39.617 回答