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.UrlParameter nicht vorgefüllt ist.
Ich habe viele Dinge ausprobiert, unter anderem versucht zu stubben UrlHelper(was fehlgeschlagen ist), manuell ein UrlHelpermit RequestContexteinem zu stubben HttpContextBase(was bei einem RouteCollection.GetUrlWithApplicationPathAnruf fehlgeschlagen ist ).
Ich habe Google durchsucht, aber praktisch nichts zu diesem Thema gefunden. Mache ich etwas unglaublich Dummes Url.RouteUrlin 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.