2009-10-01 4 views

Répondre

0

Pour être plus précis sur la raison pour laquelle vous regardez MvcIntegrationTestFramework.

Cela vous évite d'écrire vos propres aides pour diffuser le résultat et il a été prouvé que vous travaillez assez bien. Je suppose que ce serait dans un projet de test et en prime, vous auriez les autres capacités de test une fois que vous avez cette configuration. Le principal problème serait probablement de régler la chaîne de dépendance.

private static readonly string mvcAppPath = 
    Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory 
    + "\\..\\..\\..\\MyMvcApplication"); 
     private readonly AppHost appHost = new AppHost(mvcAppPath); 

    [Test] 
    public void Root_Url_Renders_Index_View() 
    { 
     appHost.SimulateBrowsingSession(browsingSession => { 
      RequestResult result = browsingSession.ProcessRequest(""); 
      Assert.IsTrue(result.ResponseText.Contains("<!DOCTYPE html")); 
     }); 
} 
0

Voici un exemple de la façon dont je l'ai fait dans la syntaxe Razor. Je devais obtenir le html d'une action comme une chaîne dans une autre action (au rendu comme pdf)

ViewResult viewResult = ActionYouWhatHtmlFrom(id); 

     using (var writer = new StringWriter()) 
     { 
      ViewEngineResult result = ViewEngines 
        .Engines 
        .FindView(ControllerContext, 
           viewResult.ViewName, "_YourLayout"); 


      var viewPath = ((RazorView)result.View).ViewPath; 
      var layoutPath = ((RazorView) result.View).LayoutPath; 

      var view = new RazorView(ControllerContext, viewPath, layoutPath, true, null); 
      var viewCxt = new ViewContext(
           ControllerContext, 
           view, 
           viewResult.ViewData, 
           viewResult.TempData, writer); 
      viewCxt.View.Render(viewCxt, writer); 
Questions connexes