2012-09-10 47 views
0

我在學寫單元測試。我遵循存儲庫模式併爲我的控制器創建了一個存儲庫。支持真正的和假的dbcontexts,現在我準備開始編寫測試。我的問題是我不知道要測試什麼。單元測試示例

  1. 我應該測試控制器,如果大部分的工作是將數據傳遞到 庫比傳遞的結果有何看法?
  2. 在我的倉庫中,我有像下面這樣的方法。他們非常直截了當,如果他們被測試?
  3. 我應該測試驗證條件嗎?
  4. 最重要的事情。你能給我一些asp MVC單元測試的例子嗎?我想,像[方法]應該[無論]這樣的語句列表可能會有所幫助。但是恐怕很難想出一些不太明顯的事情。也許有人願意分享他們的測試文件/項目之一或推薦值得一看的開源項目?

     public virtual void Update(T entity) 
         { 
          Db.Attach(entity); 
          Db.SaveChanges(); 
         } 
    
         public virtual void Save(T entity) 
         { 
          Db.Add(entity); 
          Db.SaveChanges(); 
         } 
    
         public virtual void Remove(T entity) 
         { 
          Db.Delete(entity); 
          Db.SaveChanges(); 
         } 
    

回答

1

不幸的是,這個話題是太寬泛,在這裏給出一個簡單的答案。 Google是你的朋友。我搜索了「爲c#編寫單元測試」,並獲得了超過200萬個響應。關於如何以及何時編寫單元測試,有許多競爭哲學。我建議你研究 - 從谷歌開始 - 閱讀幾種方法,根據你自己的喜好,編碼風格以及你正在試圖解決哪一個最適合的具體問題來決定。

1
  1. 我應該測試控制器,如果大部分的工作是將數據傳遞到存儲庫比傳遞的結果有何看法?

每個定義一個控制器只應模型和視圖之間的適配器。因此它不應該處理(即業務規則)信息。

聽起來像你的控制器沒有,這是很好的。如果您正在使用視圖模型,那麼只有一件事情可能會出錯:那就是您無法正確處理ModelState(即,如果出現錯誤,請回報)。

所以,如果你想測試,請繼續。

在我的資源庫中,我有像下面這樣的方法。他們非常直截了當,如果他們被測試?

否。因爲您不驗證傳入數據是否正確。測試只是集成測試而不是單元測試。

我應該測試驗證條件嗎?

如果你想確認你確認了什麼應該被驗證。

最重要的事情。你能給我一些asp MVC單元測試的例子嗎?我想,像[方法]應該[無論]這樣的語句列表可能會有所幫助。但是恐怕很難想出一些不太明顯的事情。也許有人願意分享他們的測試文件/項目之一或推薦值得一看的開源項目?

取決於你想測試什麼。