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:
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.
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.
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.
Tags und Links asp.net-mvc unit-testing asp.net-mvc-2 rspec views