Al crear una prueba unitaria para una clase que utiliza el HttpContext.Current.Cache
class, me sale un error cuando se utiliza NUnit. La funcionalidad es básico - comprobar si un artículo está en la caché, y si no, lo crea y lo puso en:Prueba unitaria HttpContext.Current.Cache u otros métodos del lado del servidor en 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");
}
Cuando se llama a esto desde una prueba de unidad, se produce un error con al NullReferenceException
cuando se enfrentan a la primera Cache
línea. En Java, usaría Cactus para probar el código del lado del servidor. ¿Hay alguna herramienta similar que pueda usar para el código C#? This SO question menciona marcos falsos: ¿es esta la única forma en que puedo probar estos métodos? ¿Hay alguna herramienta similar para ejecutar pruebas de C#?
Además, no compruebo si el Cache
es nulo, ya que no quiero escribir el código específicamente para la prueba unitaria y supongo que siempre será válido cuando se ejecute en un servidor. ¿Es esto válido, o debería agregar controles nulos alrededor de la caché?
Puede burlarse casi cualquier cosa con HttpContextBase, pero la propiedad Cache no está entre ellos. HttpContextBase.Cache es del tipo System.Web.Caching.Cache que está sellado, inutilizable en pruebas unitarias y no se puede burlar ... – chris166