Ho sempre simulato/fustigato/stappando HttpContext in qualche modo in ASP.NET (molto più facile in ASP.NET MVC/MonoRail).Perché simulare HttpContext se può essere costruito?
Ma posso vedere che HttpContext stesso può essere costruito facilmente, letteralmente con un paio di linee di codice.
var tw = new StringWriter();
var workerReq = new SimpleWorkerRequest("/webapp", @"c:\here\there\wwwroot", "page.aspx", tw);
var context = new HtpContext(workerReq);
Se ci avvolgiamo il codice in qualcosa come questo dovrebbe funzionare bene, e probabilmente si può anche rendere ASPX utilizzando tale:
using(Simulate.HttpContext()) {
HttpContext.Current.BlaBla;
}
Quindi le domande sono:
- Motivi per cui NON dovrebbe essere fatto.
- Ragioni per le quali DOVREBBE essere fatto.
- Perché non è ampiamente utilizzato (in effetti non ricordo NESSUN post su di esso).
Ricordo un post in cui Phill Haack ha costruito HttpContext utilizzando gli hack di Reflection.
Ma sembra che non sia proprio necessario.
Cheers,
Dmitriy.
Il mocking è ottimo anche per accedere a condizioni di errore specifiche. – dbn