Я пишу модульный тест и задаюсь вопросом, выгодно ли имитировать Cache
, и если да, то как?
В настоящее время в своих тестах я имитирую HttpContextBase
и оборачиваю его в пользовательский HttpContextFactory
:
var mockedHttpContextBase = new Mock<HttpContextBase>();
IHttpContextFactory httpContextFactory = new HttpContextFactory
{
Current = mockedHttpContextBase.Object
};
, и когда мой код использует IHttpContextFactory
, я проверяю, является ли кеш пустым, прежде чем что-либо с ним делать.
var cache = _httpContextFactory.Current.Cache;
Func<SomeReturnType> doSomeWork = () => _foo.someMethodIExecute(param1,param2);
return cache != null ? cache.GetOrStore("doSomeWorkCacheKey",doSomeWork, 900)
: doSomeWork.Invoke();
Правильно ли каждый раз, когда я его использую, проверять, что кеш равен нулю, или вы могли бы имитировать кеш и в тесте, чтобы он не был равен нулю при выполнении ваших модульных тестов?