2010-12-15 71 views
3

J'ai écrit un objet ActionResult personnalisé qui renvoie une chaîne. J'essaie de comprendre comment je peux tester l'unité.Test personnalisé ActionResult

J'ai essayé avec les éléments suivants:

string ExecuteResult(ActionResult result) 
    { 
     var ctx = new ControllerContext(); 
     var writer = new StringWriter(); 
     var response = new HttpResponse(writer); 
     var context = new HttpContext(new HttpRequest(null, "http://localhost/uri/", null), response); 
     System.Web.HttpContext.Current = context; 


     result.ExecuteResult(ctx); 
     return writer.ToString(); 
    } 

Il me donne:

Test method Tests.Web.Mvc.ApplicationControllerTest.TestMessageBox threw exception: 
System.NotImplementedException: The method or operation is not implemented. 

Trace de la pile:

System.Web.HttpContextBase.get_Response() 
System.Web.Mvc.JavaScriptResult.ExecuteResult(ControllerContext context) 
Tests.Web.Mvc.ResultExecutor.InvokeActionResult(ActionResult result) in D:\utv\Framework 4.0\Main\src\Framework.Tests\Web\Mvc\ResultExecutor.cs: line 22 
Tests.Web.Mvc.ApplicationControllerTest.TestMessageBox() in D:\utv\Framework 4.0\Main\src\Framework.Tests\Web\Mvc\ApplicationControllerTest.cs: line 46 

Comment puis-je tester les résultats d'action?

Répondre

0

Je suppose qu'il est impossible pour MVC2 ou MVC3.