2009-06-08 47 views
0

我正在遷移一個用MVP編寫的webforms應用程序來利用MVC框架,並想知道我應該如何測試一個簡單的控制器操作來返回一個partialview。當使用MVP時,我會對視圖上的每個屬性聲明爲真=預期值。被測從編寫MVP測試轉移到MVC

​​

我想確認的是「表」的值正確顯示在視圖中(但

控制器動作是這是我應該測試我使用的MVP模式什麼時候? )

回答

3

您應該測試ViewModel和駐留在其中的數據。另外,您應該測試結果是否是您預期的結果類型(例如,大多數情況下爲ViewResult)。最後,你應該檢查視圖名稱。

例如,這是對控制器操作的測試,該控制器操作返回用於將新用戶實體添加到現有公司的創建表單。該公司的ID提供給控制器ID參數:

 [Test] 
     public void Create_Get_Shows_View() 
     { 
      //Setup  
      //setup Controller, fakes, mocks, etc... here 

      //Execution 
      var result = (ViewResult)Controller.Create(companyID); 

      //Assertion 
      var model = (UsersController.CreateViewModel) result.ViewData.Model; 
      Assert.AreEqual("", result.ViewName); 
      Assert.IsNotNull(model.User); 
      Assert.AreEqual(companyID,model.CompanyID); 
     } 

編輯:您可能還希望測試正確HttpVerb是否設置。你可以通過反射來做到這一點。