【问题标题】:Unit testing with an external host process dependency具有外部主机进程依赖性的单元测试
【发布时间】:2010-02-03 09:53:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: .net process nunit dependencies host


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      包括:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-20
        • 1970-01-01
        • 1970-01-01
        • 2013-12-08
        • 2012-03-02
        • 1970-01-01
        • 2020-04-08
        • 1970-01-01
        相关资源
        最近更新 更多