2009-06-08 5 views
0

Je migre une application webforms écrite avec MVP pour exploiter le framework MVC et je voulais savoir comment je devrais tester une action de contrôleur simple qui retourne une vue partielle. En utilisant MVP, j'affirmerais vrai pour chaque propriété sur la vue = la valeur attendue.Passage des tests d'écriture pour MVP à MVC

action contrôleur sous test

<OutputCache(Location:=OutputCacheLocation.None)> _ 
Function Edit(ByVal id As Integer) As ActionResult 
    Dim Form As Form = mFormService.GetFormById(id) 

    Return PartialView("Form", Form) 
End Function 

Ce que je veux vérifier est les valeurs « » Afficher correctement dans la vue (mais est-ce que je devrais tester comme je l'ai fait lors de l'utilisation du modèle MVP?

Répondre

3

Vous devriez tester le ViewModel et les données qu'il contient. En outre, vous devez tester si le résultat correspond au type de résultat attendu (par exemple, ViewResult dans la plupart des cas). Enfin, vous devriez vérifier le nom de la vue. Par exemple, il s'agit d'un test pour une action de contrôleur qui retourne un formulaire de création pour ajouter une nouvelle entité utilisateur à une société existante. L'ID de la société est fournie au contrôleur comme paramètre 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); 
     } 

Edit: Vous pouvez également vérifier si le HttpVerb approprié est réglé. Vous pouvez le faire par réflexion.

Questions connexes