关于NUnit TestFixtureTeardown属性

本文关键字:属性 TestFixtureTeardown NUnit 关于 | 更新日期: 2023-09-27 18:12:13

如果我有这样的代码-

public class BaseClass
{
  [TestFixtureTeardown]
  public void SomeMethod()
  {
   ...
  }
}
public class DerivedClass : BaseClass
{
  [TestFixtureTeardown]
  public void SomeMethod2()
  {
   ...
  }
}

现在,TestFixtureTeardown属性的工作原理(正确地)是这样的-它将执行方法someemethod2(),然后是someemethod(),也就是说,如果我们用TestFixtureTeardown属性装饰它们,它将首先执行派生类的方法,然后执行基类的方法。现在这是我的问题——我是BaseClass的提供者,而其他开发人员将编写派生类。但是不能保证他们会写一个带有TestFixtureTeardown属性装饰的方法。那么我能做些什么来强制他们编写一个带有这样一个属性的方法呢?所以在一般情况下,我问的是-如何强制一个类实现有一个特定的属性对它的方法?

有什么建议吗?

关于NUnit TestFixtureTeardown属性

您使用的是哪个版本的NUnit ?我猜它是> 2.5,因为你的第一个例子不会工作,除非这是真的。

从NUnit 2.5开始,具有此属性的基类(TestFixtureTeardown)将在派生类中的每个测试方法之后被调用。

简而言之,您不需要要求派生类定义此属性—无论如何都将调用基类方法。

查看NUnit文档页面关于TestFixtureTeardown属性的更多信息