我正在爲數據庫操作編寫一些NUnit測試。顯然,如果Add()
失敗,那麼Get()
也會失敗。然而,當Add()
和Get()
都失敗時,它看起來就像是在欺騙,因爲看起來有兩個問題,而不是一個。如何忽略基於NUnit中另一個測試的測試?
是否有一種方法可以指定要運行的測試的'順序',因爲如果第一次測試失敗,以下測試將被忽略?
在同一行中,有沒有一種方法來訂購單元測試類本身?例如,我想在用於從UI中往返數據的測試之前首先運行我的基本數據庫操作測試。
注意:這與測試相互依賴有點不同,它更像是確保某些東西在運行一堆測試之前先工作。例如,如果首先無法連接到數據庫,那麼運行一堆數據庫操作是浪費時間。
編輯:似乎有些人缺少重點。我不這樣做:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
db.Get(someData);
Assert.That(data was retrieved successfully);
}
相反,我這樣做:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
// need some way here to ensure that db.Add() can actually be performed successfully
db.Add(someData);
db.Get(somedata);
Assert.That(data was retrieved successfully);
}
換句話說,我要確保數據能夠在第一時間之前,我可以添加測試它是否可以被檢索。人們假設我使用第一次測試的數據來通過第二次測試,但情況並非如此。我試圖確保一個操作是可能之前嘗試另一個依賴於它。
正如我所說的,您需要確保您可以在運行數據庫操作之前獲得與數據庫的連接。或者你可以在執行文件操作之前打開一個文件。或者在測試API調用之前連接到服務器。或者......你明白了。
接受的答案是**錯誤**!見評論 – Graviton 2009-11-24 10:03:30