私はインターフェイスの複数の実装をテストするために使用される一連のベーステストを持っています。私がこれをモードにしたのは、[Ignore]属性を持つベースのテキストフィクスチャを作成することでした。テストフィクスチャ継承と無視されたベーステストフィクスチャ
[TestFixture]
[Ignore]
public class BaseTests
{
// Use your imagination for the actual name
public virtual ITestableThing GetConcrete()
{
return null;
}
// All of my unit tests here
}
そして私は、各インターフェイスの実装のためのサブクラスを書く:
public class ConcreteThingTests : BaseTests
{
public override ITestableThing GetConcrete()
{
return new ConcreteThing();
}
}
私は1つの場所ですべての実装のためのテスト、およびサブクラスのすべてがちょうど指定する必要があり、これは、うまく機能実装。
問題は、基本クラスに[Ignore]属性を設定するか、NUnitがテストを実行しようとして失敗することです。
私のテスト結果は、無視されたテストセットで常に詰まっていますが、大したことではありませんが、テストを無視しなければならないことを避けるためのより良いパターンがあると思いました。
私はテストフィクスチャーの継承を間違って実装していますか?
私がこれを持っている問題は、テストクラスに基本クラスを密接に結合することです。新しい実装を作成して仕様に照らしてテストしたい人は、属性を追加したりメソッドを変更するために基本クラスを変更する必要はありません。 –