Eine meiner Controller-Aktionen, die in einer Ajax-Anforderung aufgerufen wird, ist die Rückgabe einer URL an die Clientseite, damit diese eine Umleitung durchführen kann. Ich verwende Url.RouteUrl(..)
und während meiner Unit-Tests schlägt dies fehl, da der Controller.Url
Parameter nicht vorgefüllt ist.
Ich habe viele Dinge ausprobiert, unter anderem versucht zu stubben UrlHelper
(was fehlgeschlagen ist), manuell ein UrlHelper
mit RequestContext
einem zu stubben HttpContextBase
(was bei einem RouteCollection.GetUrlWithApplicationPath
Anruf fehlgeschlagen ist ).
Ich habe Google durchsucht, aber praktisch nichts zu diesem Thema gefunden. Mache ich etwas unglaublich Dummes Url.RouteUrl
in meiner Controller-Aktion? Gibt es einen einfacheren Weg?
Um es noch schlimmer zu machen, möchte ich in der Lage sein, die zurückgegebene URL in meinem Komponententest zu testen. Tatsächlich bin ich nur daran interessiert zu wissen, dass sie auf die richtige Route umleitet, aber da ich eine URL anstelle von a zurückgebe Route möchte ich die URL steuern, die aufgelöst wird (z. B. mithilfe eines Stubbeds RouteCollection
) - aber ich freue mich, wenn mein Test zunächst bestanden wird.