Testansichten in ASP.NET MVC2 (ala RSpec)

9

Ich vermisse wirklich stark die Fähigkeit, Views unabhängig von Controllern zu testen. Der Weg RSpec macht es .

Ich möchte Assertions in der gerenderten Ansicht ausführen (wo kein Controller beteiligt ist!). Um dies zu tun, sollte ich das erforderliche Model, ViewData und vielleicht einige Details von HttpContextBase zur Verfügung stellen (wann werden wir HttpContext loswerden!).

Bisher habe ich nichts gefunden, was es erlaubt. Es könnte auch stark von der verwendeten ViewEngine abhängen.

Liste der Dinge, die möglicherweise enthalten sind:

  • Teilansichten (möglicherweise tief verschachtelt).
  • Masterseiten (oder ähnliche in anderen View Engines).
  • HTML-Helfer, die Links und andere Elemente erzeugen.
  • Im Allgemeinen fast alles in einem Bereich des gesunden Menschenverstandes :).

Bitte beachten Sie auch, dass ich nicht über clientseitige Tests spreche und Selenium damit überhaupt nichts zu tun hat. Es ist einfach nur .NET-Test.

Gibt es also irgendwelche Optionen, um das Testen von Ansichten tatsächlich durchzuführen?

Danke, Danke Dmitriy.

    
Dmytrii Nagirniak 06.05.2010, 12:28
quelle

3 Antworten

2

Das Hauptproblem beim Testen vollständiger Ansichten besteht darin, dass die asp.net-Ansichtsengine Response.Write im angegebenen Kontext und nicht auf dem mitgelieferten Writer aufruft.

Das oben Genannte gilt nicht für das Testen partieller Ansichten. Daher können Sie diese Lösung verwenden: Ссылка

Es gibt andere View-Engines, mit denen Sie die Ansicht testen können, z. B. Spark.

ps. Das Konzept in asp.net mvc ist, dass Sie in der Lage sein sollten, die Ansicht zu testen, indem Sie die ViewEngine verwenden, aber wie ich verstehe, hat das asp.net mvc-Team nicht um die vorhandenen asp.net-Engine-Einschränkungen funktioniert, um dies tun zu können für ihre Ansicht Motor.

    
eglasius 26.05.2010, 17:52
quelle
1

Vielleicht möchten Sie sich die UI-Testhelfer ansehen, an denen Eric Hexter und die Leute mit MVCContrib arbeiten. Ich hatte noch keine Gelegenheit, es mir genauer anzusehen, aber es könnte dir helfen. Ich fand diesen Link, der einige der Syntax zeigt: Ссылка

Ich wäre daran interessiert zu wissen, was Sie herausfinden, da ich das bald auch tun werde.

    
Brian McCord 18.05.2010 19:36
quelle
0

Interessiert zu wissen, ob Sie etwas für .Net finden, das das tut. Unsere aktuelle App ist WPF, aber wir sind fest mit vertrauen Gurke, um unsere Ansichten in all unseren Funktionen zu berühren ... so ja, das ist scheiße. Hoffe, Sie finden etwas und aktualisieren uns.

    
Sean B 19.05.2010 03:06
quelle