2013-01-03 12 views
5

In ASP.NET WebForms habe ich Selenium verwendet, um meine Web- und UI-Tests in einer Reihe von Projekten aufzuzeichnen und auszuführen.Wie funktioniert der Webtest für ASP.NET MVC-Ansichten?

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

Was ist mit Ansichten?

Würden Sie auch Ansichten 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 denke, die gleichen Web-Testing-Tools in WebForms, wie WatiN und Selen, könnten auch hier verwendet werden, nicht sicher?

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

+1

Das ist nicht korrekt, möglicherweise müssen Sie auch Ansichten testen. Es kann auch Logiken geben (z. B. Javascripts, Kontrollmaßnahmenaufrufe, Navigationen usw.) und Sie möchten sicherstellen, dass sie sich so verhalten, wie Sie es erwarten. –

Antwort

8

Was ist mit Ansichten?

Erm, Selen und WatiN.

Wirklich, was macht Sie denken, dass ASP.NET MVC Ansichten sind anders als klassische ASP.NET WebForms, 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 eine Schaltfläche alpha klickt nach Eingabe der Beta in das Gamma-Text-Feld hallo bekam diese 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?

Keine.

1

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 ein Framework, das dabei hilft, wie 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? 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.

Verwandte Themen