2012-09-19 52 views
1

我有一個基於洋蔥體系結構的體系結構。我很好奇單元測試系統。這就是系統流程:單元測試洋蔥

MVC -> Services -> Repositories -> NHibernate -> Database 

這些是我對測試的想法。我想設置一種方法來測試我的存儲庫。使用SQLite或SQL Express。單元測試將測試整個存儲庫。所以,給定一個UserRepository,它會測試它的所有方法(Get,Save,Count等)。這些測試還應該測試我的映射和實體。

接下來,我想測試我的服務。測試將使用Moq來模擬我的存儲庫。然後我會做測試,調用我的服務。每當使用Repository時,它都會使用Moq實現。任何其他關鍵代碼片段可能都需要被存儲,例如調用外部Web服務,發送電子郵件等。

我想測試的最後一部分是我的網頁。我會開始寫測試控制器,與嘲笑的服務交談。在未來的某個時候,我會考慮使用Selenium來測試UI。

考慮到我的架構是有線的測試(使用接口方法),這看起來像是單元測試的標準方式嗎?另外,關於使用IoC(Ninject)進行測試的一些想法呢?任何想法或建議將非常感激。

+0

你的問題似乎對我有點模糊。特別是第二個問題「關於使用IoC進行測試的一些想法呢?」。 – Gilles

+1

如果您收緊它,並且不要求「有些想法」或「任何想法」,那麼程序員可能會問*。問一個更具體的問題。 – ChrisF

回答

0

看起來似乎合理,確定。 至於使用sqlite或sql express我建議使用相同的數據庫,你在你的生活系統中使用。這是我們集成測試的一部分。我們有一些小問題是nhibernate生成了一些奇怪的查詢,它們在某些版本的sql server 2005中工作,但在sql server 2008中沒有。因此,測試您的存儲庫可以由單元測試(和存根會話)和集成測試組成。