Frage Wie führt man Web-Tests für ASP.NET MVC-Ansichten durch?


In ASP.NET WebForms habe ich Selenium zum Aufzeichnen und Ausführen meiner Web- und UI-Tests in einer Reihe von Projekten verwendet.

Ich weiß, dass wir Controller und Modelle in ASP.NET MVC sehr einfach testen können.

Was ist mit Ansichten?

Würden Sie auch Views testen? Wenn nicht, wie kann sichergestellt werden, dass die Views, die von Controller-Aktionen gerendert werden, die erwarteten Logiken und das erwartete Verhalten enthalten?

Ich würde vermuten, dass die gleichen Web Testing Tools, die in WebForms verwendet werden, wie WatiN und Selen, auch hier verwendet werden könnten, nicht sicher?

Wenn ja, was wäre der Unterschied zwischen WebTesting in WebForms und WebTesting in MVC?


5
2018-01-03 21:33


Ursprung


Antworten:


Was ist mit Ansichten?

Erm, Selenium und WatiN.

Worin liegt eigentlich die Annahme, dass ASP.NET MVC-Ansichten von klassischen ASP.NET-WebForms abweichen, was Integrationstests betrifft? Ich meine, sie spucken alle am Ende des Tages. Das verstehen Browser und Sachen wie Selenium. Wer dieses HTML ausspuckt ist nicht so wichtig. Was Sie in einem Integrationstest interessiert, ist, dass, wenn ein Benutzer Lambda auf einen Knopf Alpha klickt, nachdem Sie Beta in das gamma Textfeld eingegeben haben, hallo dieses Welcome User Phi auf der resultierenden HTML-Seite, nicht wahr? Sie interessieren sich wirklich nicht für Dinge wie ASP.NET MVC oder noch weniger über Dinge wie ASP.NET MVC Views.

Übrigens könnten Sie Selenium und WatiN mit PHP verwenden. Oder mit Java Servlets, wenn Sie ein Fan von ihnen sind. Es spielt keine Rolle, welche serverseitige Technologie Sie verwenden. Bei einem Integrationstest kommt es auf die Szenarien an, die Sie zuvor definiert haben.

Wenn ja, was wäre der Unterschied zwischen WebTesting in WebForms und WebTesting in MVC?

Keiner.


8
2018-01-03 21:34



Ich denke, es gibt Unterschiede zwischen ASP.NET MVC und WebForms, wenn es um browserbasierte Integrationstests geht, da die verschiedenen serverseitigen Aspekte dieser Frameworks zu unterschiedlichen Testansätzen führen.

Nehmen Sie einen Rahmen, der dabei hilft, wie z Seleno. Es verwendet Selenium unter der Haube, aber abstrahiert alle Browser-Interaktion in C # Page Objekte, die Sie dann sehr flüssig in C # -Tests verwenden können.

Es gibt viele Erweiterungen und Konventionen, die bei vielen gängigen Browser-Automatisierungsoperationen helfen, wie zum Beispiel das Klicken auf Schaltflächen oder das Extrahieren von Daten aus Tabellen.

Aber warum bringe ich das als Antwort auf diese Frage zur Sprache? Seleno ist besonders praktisch für .NET MVC, da die Seitenobjekte generisch sein können und in das ViewModel für eine bestimmte Ansicht (oder Teilansicht) eingegeben werden können, die beim Schreiben eines entsprechenden Page-Objekts für diese Ansicht eine stark typisierte Verknüpfung erstellt.

Es ist der ViewModel-Aspekt von MVC, der diese Art von Ansatz eröffnet; Ich denke, es wäre komplizierter, dies mit WebForms zu tun.


1
2018-01-03 21:59