如何創建部分使用數據庫單元測試但從常規單元測試中調用的單元測試?數據庫操作作爲單元測試的先決條件?
是的,也許他們可能不是單元測試;你可能希望稱它們爲集成測試。無論你想標註什麼,他們都是測試。
在我的NUnit的測試中,我使用輔助常數:
private const string NumericSerial="123123";
private const string NonNumericSerial="123123 bad serialnumber";
private const int ValidPatientId=123;
private const int InvalidPatientId=-1;
private const int PatientIdThatDoesNotExistInppp=111291;
private const string SerialNumberThatDoesNotExistInshmk="123123";
private const string SerialNumberThatDoesExistInshmk="1015873";
private const byte InvalidFirmwareVersion=0;
private const int FacilityThatDoesntExistInAAA=Int32.MaxValue;
此前運行使用這些常量的任何測試,我想確認這些恆定的正確定義。
例如,我可以斷言NumericSerial的確是數字,而不必做任何嘲弄或注入任何依賴關係 - 我只是簡單地嘗試它。
然而,其他常量如PatientIdThatDoesNotExistInppp將需要驗證它確實在PPP數據庫中不存在。爲了做到這一點,我可以遵循以下幾個途徑:
- 實現實體框架LINQ查詢
- 明確首先創建發送select語句的數據庫
- 或者我可以一個數據庫單元測試必要的記錄(在我們的情況下,它會確保111291不存在於數據庫中。
除非你對選項#3強烈建議,我傾向於實現這一點。如何創建一個單元測試,部分利用數據庫單元測試,但從常規單元測試中調用?
我尋找類似以下內容:
[Test]
public response_from_database_unit_test_equals_111291()
{
//call the database unit test
//retrieve value from database unit test
}
您是否首先使用Entity Framework代碼作爲您的數據訪問層,根本沒有存儲過程?如果是的話,那麼有一種很好的方式來進行數據測試,而不會觸及數據庫,但數據層具有100%的可靠性。讓我知道。 –
我不是id愛聽如何進行這種方式 –
通過「這樣」我假設你的意思是你的問題,所以我已經回答了 –