2

このようなコードがある場合-

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

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

ここで、TestFixtureTeardown 属性は次のように機能します (そして正しく機能します)。メソッド SomeMethod2() を実行してから SomeMethod() を実行します。属性。ここに私の問題があります。私は BaseClass のプロバイダーであり、他の開発者が Derived クラスを作成します。ただし、TestFixtureTeardown 属性で装飾されたメソッドを記述することは保証されていません。では、そのような属性で装飾されたメソッドを書くよう強制するにはどうすればよいでしょうか? したがって、一般的に私が求めているのは、クラスの実装に特定の属性を持つメソッドを強制する方法は?

助言がありますか?

4

1 に答える 1

0

どのバージョンの NUnit を使用していますか? 最初の例はそれが真でない限り機能しないため、> 2.5 であると推測しています。

NUnit 2.5 以降、派生クラスの各テスト メソッドの後に、この属性 (TestFixtureTeardown) を持つ基本クラスが呼び出されます。

つまり、派生クラスでこの属性を定義する必要はありません。基本クラスのメソッドは関係なく呼び出されます。

これに関する詳細については、TestFixtureTeardown 属性に関するNUnit のドキュメント ページを参照してください。

于 2013-05-03T15:01:09.380 に答える