2012-08-13 14 views
5

Wie ist der Integrationstest und Komponententest beim Testen von APIController relevant? und wie kann ich das Repository während des Erstellens der Webanfrage im Integrationstest verspotten, so dass es keine tatsächliche Anfrage an die Datenbank stellt?Integrationstest und Komponententest (WEB-API mvc 4)

Antwort

5

Sie können die Self Hosting-Funktionalität verwenden, um die Controller zu starten und die OpenAsync().ContinueWith(t => { /* ... */ })-Funktion zum Ausführen Ihrer Tests zu verwenden. Sie sollten die Configuration.DependencyResolver überschreiben und die IHttpControllerActivator überschreiben, damit Sie Ihre eigene Scheinimplementierung angeben können (z. B. können Sie Ninject verwenden, um den spezifischen Controller abzurufen, der bereits mit einer Scheinimplementierung verbunden ist).

+3

Hier finden Sie ein vollständiges Beispiel: http://www.jefclaes.be/2012/07/should-i-iunit-or-integration-test-my.html – JefClaes

+1

@JefClaes Ihr Artikel ist am nützlichsten! Mit Beispielen und allen, die zeigen, wie man einen vollständigen End-to-End-Test mit der MVC Web API durchführt, ohne einen Webserver zu starten. Sehr schön. – Brain2000