Wie zum Hohn Pfad der Anwendung beim unit-testing, Web App

Ich bin testen von code in einer MVC-HTML-helper wirft einen Fehler, wenn Sie versuchen, um die Anwendung Pfad:

//appropriate code that uses System.IO.Path to get directory that results in:
string path = "~\\Views\\directory\\subdirectory\\fileName.cshtml";
htmlHelper.Partial(path, model, viewData); //exception thrown here

Ausnahme, die geworfen wird, ist

System.Web.HttpException: Die Anwendung der relativen virtuellen Pfad " ~/Views/Verzeichnis/Unterverzeichnis/Dateiname.cshtml " nicht verabsolutiert werden, da der Pfad zu der Anwendung, ist nicht bekannt.

Anschluss an die Beratung der Wie zu beheben Problem mit dem image-Pfad bei der Prüfung HtmlHelper?

Ich habe vorgetäuscht (mit Moq):

  • Request.Url um einen string zurückzugeben, der
  • Request.RawUrl um einen string zurückzugeben, der
  • Request.ApplicationPath um einen string zurückzugeben, der
  • Request.ServerVariables null zurück, NameValueCollection
  • Response.ApplyAppPathModifier(string virtualPath) um einen string zurückzugeben, der

Was sonst noch notwendig ist, in der Lage sein, damit dieser code ausgeführt werden, der im Rahmen eines unit-test ausgeführt?

Oder

Was andere Ansatz sollte ich nehmen für die Darstellung einer Teilansicht auf eine dynamisch erstellte Zeichenfolge?

  • Es ist nicht eine vollständige Antwort auf deine Frage, aber wenn Sie Ihre Mocks erstellt werden, wie new Mock<I....>(MockBehavior.Strict) erhalten Sie ASP.NET MVC und Moq Ihnen sagen, was Sie brauchen - Sie bekommen Ausnahmen für setups, die Sie noch nicht umgesetzt.
  • Danke @Ciaran, ist es nützlich zu wissen, aber es scheint, ich habe verspottet alles, was notwendig für MockBehavior.Strict mir zu erlauben, führen Sie den test auf der Linie werfen der Ausnahme.
  • Ich in der Regel nicht unit-testen Sie den rendering-Prozess. Was denken Sie über ein "pass" auf diesem Gerät testen?
  • Der test ist für den Bau von diesem Weg, aber ich nehme an, dass das sollte sein gelegt in eine helper-Klasse und dort getestet.
  • wenn Sie möchten, ansehen für eine Frage, die Sie dazu aufgefordert werden einige gute Gummi-ducking (c2.com/cgi/wiki?RubberDucking), bitte beantworten Sie unten und erhalten Sie einen upvote und eine akzeptierte Antwort.
  • Lustig ist, dass ich gebeten wurde, eine Ente, die in einem völlig anderen Kontext nur dieses Wochenende 🙂 ich bin froh, dass ich helfen konnte.
  • Sie können versuchen, die Lösung hier: blog.jardalu.com/2013/4/23/...
  • die blog-post-URL ist die Rückkehr 404
  • Ich kopierte archivierter blog-Inhalte als separate Antwort.

InformationsquelleAutor StuperUser | 2011-06-21
Schreibe einen Kommentar