This question about unit tests引發了另一件困擾着我的事情。我有三種方式來回敲擊數據庫時進行單元測試。單元測試和數據庫
- 創建模擬對象並將它們插入。這具有不需要數據庫的優點,但這很耗時,而且我不確定我得到的投資有多少回報。我一直在進入國際奧委會和moq一點點,但它似乎仍然很痛苦。
- 創建一個setup和teardown數據庫腳本來創建已知的案例,並對這些案例進行測試。再次,可以是時間密集型的,但大多數時候仍然比模擬對象更容易創建。而其他人在工作時仍然可以運行它,假設他們在本地主機上有SQL服務器。
- 手動檢查開發數據庫並修改單元測試。大量手動工作,但如果我有一個「測試集」不改變,它似乎工作正常。在我的機器上,至少:-)。
我知道選項1是「正確」的方式做單元測試,而是三個,這可能是我用的最少的(儘管最新的項目已經與國際奧委會的選項,使門對我開放)。我意識到這很大程度上取決於究竟是什麼被嘲笑和什麼被測試,但我在這裏錯過了什麼?
如果上下文有幫助,我在C#商店,編寫內部應用程序,只有少數開發人員。
技術#3(自動執行SUT,但手動驗證結果)對於測試不能自動驗證的事情很有用,如UI的外觀和外觀,HTML在不同瀏覽器中的外觀或確保你的遊戲具有良好的圖形。但是,對於數據庫,我認爲您將花更少的時間來使用前兩種技術進行全面測試。 – apollodude217 2010-06-26 14:35:47
這不是一個dup嗎? http://stackoverflow.com/questions/3111645/mock-objects-vs-test-database – 2010-06-26 15:45:33