【发布时间】:2013-07-15 16:34:25
【问题描述】:
我正在查看一些使用 NUnit 的测试代码,它继承自包含 [SetUp] 属性的基类:
public class BaseClass
{
[SetUp]
public void SetUp()
{
//do something
}
}
[TestFixture]
public class DerivedClass : BaseClass
{
[SetUp]
public void SetUp()
{
//do something else, with no call to base.SetUp()
}
//tests run down here.
//[Test]
//[Test]
//etc
}
派生类肯定需要在基类的 SetUp() 方法中完成的工作。
是我遗漏了什么,还是在运行派生类的测试时不会调用基类中的 SetUp() 方法? [SetUp] 属性有什么特别之处可以确保先调用另一个吗?
【问题讨论】:
-
构造函数是你的朋友。如果您想要附加设置行为 - 使用构造函数,因为它们的语法对此更直观。此外,您还应该考虑jamesnewkirk.typepad.com/posts/2007/09/why-you-should-.html 中的基本原理
-
对任何遇到此问题的人的另一个提示:确保您的
SetUp方法是公开的。如果它们是私有的,R# 不会警告你,但它们不会运行。 -
NUnit 2.5+ 的最新答案在这里:stackoverflow.com/a/22099351/532647