Es tut mir leid, dass ich diese Trommel erneut geschlagen habe, aber ich habe nach einer Methode gesucht, um Komponententest eine gerenderte Ansicht in ASP.NET MVC (derzeit mit v2).
Ich bin nicht 100% ig zufrieden mit der Verwendung von WatiN oder Selenium, beide sind großartige Werkzeuge, aber es dauert viel zu lange, um einen Test für ein so einfaches Szenario durchzuführen, und testen viel mehr als ich brauche.
Ich bin auch zutiefst unzufrieden mit dem Mantra "Ansichten sollten nicht getestet werden", das scheinbar aus der Ursache von Views stammt, in ihrem aktuellen Zustand, einfach außerhalb eines größeren Integrationstests nicht testbar ist. :)
Ich habe bereits einen Test auf dem Controller mit "AssertViewRendered (). Für (" Index "). MitViewData ()" usw. Ich möchte nur abdecken, dass die Daten von der Ansicht angezeigt werden, wenn es eingeschaltet ist das Modell.
Stellen Sie sich dieses einfache Szenario vor:
Controller:
%Vor%Und dieses einfache Ansichtsmodell:
%Vor%Und eine einfache Ansicht:
%Vor%Wie automatisiere ich mit einem einfachen Komponententest, dass die Ansicht tatsächlich die Message-Eigenschaft verwendet, ohne dass umfangreiche Integrationstools wie WatiN und ohne Webserver verwendet werden müssen?
So etwas wäre ideal:
%Vor%Dieses Problem besteht darin, dass Ihre Ansichtsdatei andere Informationen enthält, die sich auf die Ansicht (auch Markup) auswirken. Sie können das Ansichtsmodell testen, um die richtigen Informationen im Ansichtsmodell zu haben, aber ich bin mir nicht sicher, ob Sie genau das wollen.
Sie können Ihr ViewResult.ViewData.Model bei der Anzeige von Modell- und Assertionswerten von dort aus darstellen.
%Vor%Wenn du die Spark-View-Engine benutzt hast, könnte es etwas einfacher sein
Tags und Links asp.net-mvc c# unit-testing