使用基类进行单元测试的设置和拆卸

12
假设使用Visual Studio.NET 2008和MsTest运行单元测试,当一个系统基于服务容器和依赖项注入时,单元测试自然需要设置服务。这些服务应该在所有单元测试派生的基类中设置,还是在每个单元测试类中设置?如果应该在一个基类中设置,是否有一种方法可以执行TestInitialize和ClassInitialize方法,而不需要从派生类调用它们,例如base.Initialize?
3个回答

8

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


2
Class方法将始终被标记为静态的,因此不会从派生类中调用。Test方法将被调用,因为它们是实例方法。 - sduplooy

6

在2008年,你可以在一个基类上使用[TestInitialize],只要你不在继承层次结构中添加另一个[TestInitialize],它就会被调用。你也可以使用虚方法实现相同的效果。


同样适用于[TearDown]和其他类似的标识符。干杯。 - Fuzzy Analysis

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接