MVC Vorschau 5 - Rendern einer Ansicht in String zum Testen

8

Ich habe einen Beitrag von Brad Wilson ( Ссылка ) über die neue ViewEngine gelesen ändert sich in MVC Preview 5 und ich denke, es wäre großartig, in der Lage zu sein, eine Ansicht auf String für die Verwendung in Tests zu rendern. Ich bekomme den Eindruck von dem Artikel, dass es möglich ist, dies zu erreichen, aber ich kann nicht herausfinden, wie.

Ich glaube, dies würde es uns ermöglichen, einige unserer WatIn-Tests (die langsam und unzuverlässig sind) abzuschaffen, da wir dadurch überprüfen könnten, ob die View korrekt gerendert wurde, indem wir die Zeichenfolge auf erwartete Werte / Text überprüfen / p>

Hat jemand so etwas implementiert?

    
Chris Knight 22.09.2008, 14:12
quelle

3 Antworten

5

Es ist schwierig. Sie müssen die Response.Filter-Eigenschaft auf eine benutzerdefinierte Stream-Klasse festlegen, die Sie implementieren. Das MVC Contrib Projekt hat tatsächlich Beispiele dafür. Ich würde da drinnen herumstochern.

    
Haacked 22.09.2008 19:25
quelle
1

Ich denke, hier ist was du brauchst. Die Funktion RenderPartialToString gibt den Controller als Zeichenfolge zurück. Ich bekomme es von hier .

%Vor%     
AnhTriet 24.06.2015 03:02
quelle
0

Darüber hinaus kann es für Komponenten wie HTML-zu-PDF-Konverter nützlich sein. Diese Komponenten verwenden normalerweise zwei Arten der Transformation.

  • Übergeben einer URL an die Konvertierungsmethode
  • Übergeben eines HTML-Inhalts (und Sie können optional baseUrl angeben, um virtuelle Pfade aufzulösen)

Ich verwende einen Authorize-Filter innerhalb des Controllers. Wenn ich also auf die URL umleite, ist der gerenderte HTML-Code die Anmeldeseite (ich benutze eine benutzerdefinierte Authentifizierung).

Wenn ich Server.Execute (Url) verwende, um den Kontext beizubehalten, schlägt die Methode fehl (HttpUnhandledException: Fehler beim Ausführen der untergeordneten Anforderung für / Template / Pdf / 1.).

Ich habe also versucht, den HTML-Code des gerenderten ViewResult-Objekts abzurufen, aber es ist mir nicht gelungen.

    
labilbe 15.11.2008 04:10
quelle