您可以使用繼承來在多個單元測試類之間共享設置數據。
您可以創建一個基礎測試類,並讓其他類繼承它(包括將針對每個測試調用的[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