Имитация System.Web.Caching.Cache -Имитация или проверка на нуль?

Я пишу модульный тест и задаюсь вопросом, выгодно ли имитировать 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();

Правильно ли каждый раз, когда я его использую, проверять, что кеш равен нулю, или вы могли бы имитировать кеш и в тесте, чтобы он не был равен нулю при выполнении ваших модульных тестов?

8
задан MrLore 30 August 2018 в 14:53
поделиться