假设Visual Studio.NET 2008和MsTest用于运行单元测试。当系统基于服务容器并且依赖注入单元测试时,自然需要建立服务。
这些服务是否应该在基类中设置,所有单元测试都来自或在每个单元测试类中。如果它们应该在基类中,是否有办法执行TestInitialize
和ClassInitialize
方法而不需要从派生类调用它们,例如base.Initialise?
答案 0 :(得分:8)
MSTest框架将搜索整个对象(所有基类)以查找标记为Test*
的方法。就像在单元测试类中声明它们一样,您不必明确地调用它们。
答案 1 :(得分:5)
使用2008,您应该能够在基类上使用[TestInitialize],并且只要您不在层次结构中的某处添加另一个[TestInitialize],就应该调用它。您也可以使用虚拟方法执行操作。
答案 2 :(得分:0)
我更喜欢将Test*
和Class*
标记的方法放在实际的单元测试类上。如果在基类上定义它们,则无法向它们添加特定于测试的活动。相反,在基类上使用静态和实例构造函数和终结器。