2

如果我有这样的代码 -

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

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

现在,TestFixtureTeardown 属性像这样(并且正确地)工作 - 它会执行方法 SomeMethod2() 然后是 SomeMethod(),也就是说,如果我们用 TestFixtureTeardown 装饰它们,它将先执行派生类的方法,然后再执行基类的方法属性。现在这是我的问题 - 我是 BaseClass 的提供者,其他开发人员将编写派生类。但不能保证他们会编写一个用 TestFixtureTeardown 属性修饰的方法。那么我能做些什么来强制他们编写一个用这种属性装饰的方法呢?所以总的来说,我要问的是 - 如何强制类实现具有具有特定属性的方法?

有什么建议么?

4

1 回答 1

0

您使用的是哪个版本的 NUnit?我猜它> 2.5,因为除非这是真的,否则您的第一个示例将不起作用。

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

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

在NUnit 文档页面上查看有关 TestFixtureTeardown 属性的更多信息。

于 2013-05-03T15:01:09.380 回答