Durante la creazione di un test unitario per una classe che utilizza lo HttpContext.Current.Cache
class, viene visualizzato un errore quando si utilizza NUnit. La funzionalità è essenziale - controllare se un elemento è nella cache, e se non, crearlo e metterlo in:Unit test HttpContext.Current.Cache o altri metodi sul lato server in C#?
if (HttpContext.Current.Cache["Some_Key"] == null) {
myObject = new Object();
HttpContext.Current.Cache.Insert("Some_Key", myObject);
}
else {
myObject = HttpContext.Current.Cache.Get("Some_Key");
}
Quando si chiama questo da un test di unità, non riesce con a NullReferenceException
quando incontra il primo Cache
linea. In Java, vorrei usare Cactus per testare il codice lato server. C'è uno strumento simile che posso usare per il codice C#? This SO question cita framework mock: è l'unico modo in cui posso testare questi metodi? C'è uno strumento simile per eseguire test per C#?
Inoltre, non è possibile verificare se lo Cache
è nullo poiché non desidero scrivere codice specifico per il test dell'unità e presupporre che sarà sempre valido durante l'esecuzione su un server. È valido o dovrei aggiungere controlli nulli sulla cache?
È possibile prendere in giro quasi tutto con HttpContextBase, ma la proprietà Cache non è tra questi. HttpContextBase.Cache è di tipo System.Web.Caching.Cache che è sigillato, inutilizzabile nei test di unità e non mockable ... – chris166