Tengo esta clase CacheManager que mantiene un diccionario estático con todo tipo de datos en caché. Sin embargo, con este diccionario como estático, se llena con los datos de las otras pruebas unitarias. Esto me impide realizar pruebas unitarias, ya sea que el CacheManager esté vacío en init o no, y rompe con los principios de las pruebas unitarias.Prueba de unidad CacheManager
¿Alguna idea de cómo crear una prueba de unidad adecuada para esto?
Código
public class CacheManager
{
private static readonly Dictionary<ICacheKey, ListCacheItem> cacheEntries =
new Dictionary<ICacheKey, ListCacheItem>();
public static Dictionary<ICacheKey, ListCacheItem> CacheEntries
{
get
{
lock (cacheEntries)
{
return cacheEntries;
}
}
}
¿Cómo es esto mejor? ¿El singleton tampoco mantendrá los valores entre pruebas? – koenmetsu
Correcto, el Singleton lo hará. Pero puede crear una instancia del 'CacheManager' y probar sus miembros de forma aislada. Luego, en otras pruebas, por ejemplo, puede asegurarse de que todas las demás partes de su aplicación estén usando la misma instancia de Singleton. – dyross
Entonces, ¿su solución sería crear una nueva clase Singleton que contenga una instancia de CacheManager como uno de sus miembros? – koenmetsu