【问题标题】:Using a base class for unit test setup and teardown使用基类进行单元测试设置和拆卸
【发布时间】:2009-01-27 14:11:39
【问题描述】:

假设 Visual Studio.NET 2008 和 MsTest 用于运行单元测试。当系统基于服务容器和依赖注入时,单元测试自然需要设置服务。

这些服务是否应该设置在所有单元测试派生自每个单元测试类的基类中或在每个单元测试类中。如果它们应该在基类中,有没有办法让 TestInitializeClassInitialize 方法在不需要从派生类调用的情况下执行,例如 base.Initialise?

【问题讨论】:

    标签: .net unit-testing mstest


    【解决方案1】:

    MSTest 框架将在整个对象(所有基类)中搜索标记为Test* 的方法。就像在单元测试类中声明它们一样,您不必显式调用它们。

    【讨论】:

    • Class* 方法将始终标记为静态,因此不会从派生类中调用。 Test* 方法将被调用,因为它们是实例方法。
    【解决方案2】:

    在 2008 中,您应该能够在基类上使用 [TestInitialize],只要您不在层次结构中的某个位置添加另一个 [TestInitialize],就应该调用它。你也可以用虚方法来做事。

    【讨论】:

    • 也适用于 [TearDown] 和其他类似的标识符。干杯。
    【解决方案3】:

    我更喜欢在实际的单元测试类中使用 Test*Class* 标记的方法。如果在基类上定义它们,则不能向它们添加测试特定活动。相反,在您的基类上使用静态和实例构造函数和终结器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多