我想针对 .Net 类库程序集中的类运行一些 NUnit 单元测试,该类库程序集被设计为由外部进程(在我的控制之外)托管并在运行时加载。
我要测试的类派生自宿主 exe 中定义的类,该类需要在宿主进程中实例化。任何在宿主进程之外实例化基类派生的尝试都会失败并出现异常。
因此,我无法通过简单地加载程序集并实例化类来测试 NUnit gui 或控制台测试主机中的类。有人对我如何执行这些测试有任何建议吗?
我想针对 .Net 类库程序集中的类运行一些 NUnit 单元测试,该类库程序集被设计为由外部进程(在我的控制之外)托管并在运行时加载。
我要测试的类派生自宿主 exe 中定义的类,该类需要在宿主进程中实例化。任何在宿主进程之外实例化基类派生的尝试都会失败并出现异常。
因此,我无法通过简单地加载程序集并实例化类来测试 NUnit gui 或控制台测试主机中的类。有人对我如何执行这些测试有任何建议吗?
我可能会将这个类分成两个类——一个从外部进程中的类型派生的“外部”类,以及一个完成所有工作但不从您无法控制的任何东西继承的“内部”类。
然后,测试内部类,并让外部类尽可能没有逻辑。
当您可以以某种方式将代码与依赖项隔离时,单元测试几乎总是更容易。
如果你想测试你的源代码和你的程序内部你有那些外部类方法调用,也许模拟整个外部过程会解决你的问题。
您可以将模拟设计为表现得像您的主机类。
包含:
由于我不是 .NET 开发人员,所以我不熟悉细节,但我知道 .NET 中的模拟引擎非常强大。