継承を使用して、複数のユニットテストクラス間でセットアップデータを共有できます。
ベーステストクラスを作成し、それを継承するクラスを作成することができます(それぞれのテストで呼び出される[TestInitialize]
を含む)。
は、テスト構造がどのように見える可能性が参照するために上記のリンクを使用して、すべてのテスト
のための一般的なセットアップコードを持って試験用テスト構造を使用する方法を示している、この記事で、Structuring Unit Testsを見てみましょう...
[TestClass]
public partial class DbTests {
protected DbContext db;
[TestInitialize]
public virtual void Init() {
//Virtual so it could be overridden in derived classes if needed.
//...check the DB-access code is doing the right thing.
}
[TestClass]
public class Test1 : DbTests {
[TestMethod]
public void Should_Do_Some_Test(){...}
[TestMethod]
public void Should_Do_Some_Db_Test(){...}
}
[TestClass]
public class Test2 : DbTests {
[TestMethod]
public void Should_Do_Some_Other_Test(){...}
}
}
私は上記のフォーマットを使用して、共通のセットアップコードを共有するテストを構成します。
外部システムを参照することは悪い考えです。私はあなたのデータアクセス層とあなたのビジネス層の間に層を作成することを好む。たとえば、データアクセスのメソッドやプロパティを持つインターフェイスがあります。これはテストすることができます。 –
私は一般的に同意すると思いますが、これがどのように設定されているのですか。それはあなたがより幸せになる場合、それは別のタイプのテストと呼んでください:)統合? –
各テストごとにDbをリセットする必要があるのか、それともすべてのテストで使用するのか。 – Nkosi