1

我想针对 .Net 类库程序集中的类运行一些 NUnit 单元测试,该类库程序集被设计为由外部进程(在我的控制之外)托管并在运行时加载。

我要测试的类派生自宿主 exe 中定义的类,该类需要在宿主进程中实例化。任何在宿主进程之外实例化基类派生的尝试都会失败并出现异常。

因此,我无法通过简单地加载程序集并实例化类来测试 NUnit gui 或控制台测试主机中的类。有人对我如何执行这些测试有任何建议吗?

4

2 回答 2

2

我可能会将这个类分成两个类——一个从外部进程中的类型派生的“外部”类,以及一个完成所有工作但不从您无法控制的任何东西继承的“内部”类。

然后,测试内部类,并让外部类尽可能没有逻辑。

当您可以以某种方式将代码与依赖项隔离时,单元测试几乎总是更容易。

于 2010-02-03T10:16:46.427 回答
0

如果你想测试你的源代码和你的程序内部你有那些外部类方法调用,也许模拟整个外部过程会解决你的问题。

您可以将模拟设计为表现得像您的主机类。

包含:

  • 模拟加载运行时库(您感兴趣的那些)
  • 模拟特定方法的所有可能输出
  • 模拟异常

由于我不是 .NET 开发人员,所以我不熟悉细节,但我知道 .NET 中的模拟引擎非常强大。

于 2010-02-03T10:03:30.773 回答