Komponententest Die HtmlHelper-Erweiterungsmethode schlägt fehl

9

Ich versuche einige HtmlHelper Erweiterungsmethoden zu testen, die ich geschrieben habe. Mein erstes Problem war, wie man eine HtmlHelper Instanz erstellt, aber ich habe das mit diesem Code gelöst:

%Vor%

Einige meiner Tests funktionieren jetzt einwandfrei, aber es gibt einen Test, der eine Ausnahme auslöst. Der Test ist wie folgt definiert:

%Vor%

Die Methode EditorFor ist meine Erweiterungsmethode. Irgendwo in dieser Methode wird der folgende Aufruf ausgeführt:

%Vor%

Wenn dieser Code von meinem Komponententest ausgeführt wird, wird die folgende Ausnahme ausgelöst:

%Vor%

Der Code schlägt also in ScopeCache.Get fehl, aber warum? Hat jemand eine Idee, wie man das löst?

    
Erik Schierboom 08.08.2014, 15:03
quelle

2 Antworten

21

Am Ende habe ich mich mit dem Quellcode von ASP.NET MVC befasst. In ihrem Code testen sie auch HtmlHelper Instanzen. Dazu verwenden sie eine Dienstprogrammklasse namens MvcHelper , die bequeme Methoden zum Erstellen einer neuen HtmlHelper -Instanz mit einem korrekt vorbereiteten HTTP-Kontext bietet.

Nachdem ich den Code, den ich nicht brauchte, entfernt habe, habe ich die folgende Klasse bekommen:

%Vor%

Mit dieser Hilfsklasse wurde mein Code korrekt ausgeführt.

Ich habe eine Beschreibung für die komplette Helferklasse erstellt, um eine einfache Einbindung in Ihr Projekt zu ermöglichen: Ссылка

    
Erik Schierboom 09.08.2014, 08:38
quelle
1

Sieht so aus, als müsstest du wahrscheinlich auch den HttpContext überspielen.

    
Chris Pietschmann 08.08.2014 16:11
quelle