Gli URL per i menu nelle mie app ASP.NET MVC vengono generati dal controller/azioni. Quindi, chiamanoASP.NET MVC: Mock controller.Url.Action
controller.Url.Action(action, controller)
Ora, come faccio a fare questo lavoro in unit test? Io uso MvcContrib con successo con
var controller = new TestControllerBuilder().CreateController<OrdersController>();
ma tutto quello che cerco di fare con esso ho controller.Url.Action (azione, di controllo) in mancanza con NullReferenceException perché URL == null.
Aggiornamento: non si tratta di come intercettare HttpContext. L'ho fatto in diversi modi, usando MVCContrib, l'esempio di falso di Scott Hanselman e anche quello di http://stephenwalther.com/blog/archive/2008/07/01/asp-net-mvc-tip-12-faking-the-controller-context.aspx. Questo non mi aiuta perché ho bisogno di sapere quali valori falsi ... è ApplicationPath? Come lo installo? Deve corrispondere al controller/azione chiamato? Cioè, come funziona Url.Action e come posso soddisfarlo?
Inoltre, so che posso fare IUrlActionAbstraction e seguirlo ... ma non sono sicuro di volerlo fare. Dopo tutto, ho MVCContrib/Mock a piena potenza e perché ho bisogno di un'altra astrazione.
Qual è la tua suite di test? –
Non vale una risposta da solo, quindi indicherò una risposta simile: http://bit.ly/aSJ0a –
Sì, ho usato quel collegamento e non ha funzionato. In realtà ho provato sia la versione di Scott che MVCContrib. Quello che cerco di capire è quali valori devo impostare? Cosa usa effettivamente Url.Action()? Cioè sul link che hai fornito c'è la versione di Moq che imposta un sacco di variabili ... sono TUTTE le necessarie? Ho provato tutti loro senza fortuna. – queen3