2010-11-16 76 views

回答

5

而且沒有哪個選項是錯誤的,但也有許多方法來擴展和鞏固自己的戰略:用工具,如RedGate's Sql Data Gen

這些解決方案都是MUT ually獨家。我會特別推薦最後一項(可插拔提供程序),然後在對象模擬或人爲但質量db測試數據之間進行選擇。

+0

+1展鵬的SQL數據根;我以前不知道這一點。謝謝! – pencilCake 2010-11-16 17:02:00

2

最好的辦法是研究依賴注入和Mocking框架。通過這種方式,您可以將數據提供者換成模擬數據提供者,並使用適合您特定測試需求的數據。

如果你使用的是NHibernate或類似的,你可以在每次測試(fixture)之前重新創建你的數據庫模式。

1

在你描述的情況下,我寧願在測試函數中創建帳戶。

單元測試應儘可能自包含。此外,如果您可以在一個地方看到測試所需的所有數據,它有助於理解您正在測試的內容。

這裏是一個完全由例子應該說明:

[Test] 
public void Test_CannotCreateDuplicateEmail() 
{ 
    // Arrange 
    CreateAccount("[email protected]"); // OK 

    // Act 
    try 
    { 
     CreateAccount("[email protected]"); 

     // If control arrives here, then the test has failed. 
     Assert.Fail(); 
    } 

    // Assert 
    catch(AccountException ex) 
    { 
     // Assert that the correct exception has been thrown. 
     Assert.AreEqual("Failed", ex.Message); 
    } 
} 
相關問題