Bazı birim testi yazıyorum ve Cache
alay etmenin avantajlı olup olmadığını merak ediyorum ve eğer öyleyse, nasıl? Benim testlerde ŞuMocking System.Web.Caching.Cache - Boşluk veya boş için denetle?
Ben HttpContextBase
dışarı alay ve özel bir HttpContextFactory
sararak ediyorum:
var mockedHttpContextBase = new Mock<HttpContextBase>();
IHttpContextFactory httpContextFactory = new HttpContextFactory
{
Current = mockedHttpContextBase.Object
};
ve benim kod IHttpContextFactory
tüketir zaman önbellek onunla bir şey yapmadan önce boş olup olmadığını kontrol edin.
var cache = _httpContextFactory.Current.Cache;
Func<SomeReturnType> doSomeWork =() => _foo.someMethodIExecute(param1,param2);
return cache != null ? cache.GetOrStore("doSomeWorkCacheKey",doSomeWork, 900)
: doSomeWork.Invoke();
doğru böyle boş bunu kullanmak veya birim testleri çalıştırırken o boş değil böylece testinde de önbellek dalga geçeyim her an önbelleği için kontrol etmek mi?
Teşekkürler Jimmy. 1. nokta ile ilgili olarak, varolan önbelleğe bağlı bir sınama nasıl yazılır? Bu durumda testi yapmak için önbelleği nasıl alay ediyorsun? –
@JamieDixon: Gerçekten "Önbellek" ile mühürlenmiş olamaz; Gerçek 'Cache' uygulamasını kullanarak bunu önceden yapılandırmanız ve" HttpContextBase "inizin önceden yapılandırılmış önbellek istendiğinde döndürülmesi gerekir. Gönderiye örnek ekledim. –
Tekrar teşekkürler Jimmy. Zamanını ve yardımını takdir ediyorum. Daha fazla arama yaptıktan sonra kendime bir cevap ekledim. Ben 'HttpRuntime.Cache' kullanarak daha uygun çünkü her şey yapılandırılmamışsa 'System.Web.Caching.Cache' 'NullReferenceExeption' atmak gibi çalışacak her şeyi çalışacak. –