Wie behebe ich Probleme mit dem Image-Pfad beim Testen von HtmlHelper?

8

Ich stieß auf ein Problem, als ich meinen HTML-Helfer testete. Grundsätzlich erstelle ich ein Raster mit vielen Zeilen, Spalten und verschiedenen Datentypen. In der Kopfzeile gibt es auch ein Bild, um den Benutzer darüber zu informieren, nach welcher Spalte die Daten sortiert sind. Aber wenn ich jetzt meinen Test schreibe (viel zu spät, aber besser spät als nie richtig ?!), bekomme ich diesen Fehler:

  

"Der relative virtuelle Pfad der Anwendung   '~ / Images / SortingArrowUp.png' kann nicht   absolut gemacht werden, weil der Pfad zu   Die Anwendung ist nicht bekannt. "

%Vor%

Wie kann ich das lösen? Ich kann verstehen, dass dies ein Problem während des Tests sein könnte, und das Bild ist möglicherweise nicht verfügbar und all das, aber was ist der richtige Weg, dies zu tun?

    
MrW 06.08.2010, 15:13
quelle

2 Antworten

13

Der korrekte Weg besteht darin, UrlHelper.GenerateContentUrl anstelle von VirtualPathUtility aufzurufen. In Ihrem Hilfscode würden Sie so etwas tun:

%Vor%

Beim Komponententest müssen korrekt konnotierte Kontextobjekte übergeben werden. Sie müssen HttpContext.Request.ApplicationPath vortäuschen - einen Dummy-App-Pfad zurückgeben, HttpContext.Response.ApplyAppPathModifier() - nichts tun, HttpContext.Request.ServerVariables - null zurückgeben, HttpContext.Request.Path und HttpContext.Request.RawUrl - einen Wert zurückgeben, der Sinn ergibt.

    
marcind 06.08.2010, 23:08
quelle
5

Sie können einfach diese Überladung verwenden:

%Vor%

Dies ist, was UrlHelper.GenerateContentUrl intern verwendet, und Sie müssen nur ApplicationPath vortäuschen.

    
Gabe Moothart 17.11.2010 19:50
quelle