У меня есть сервисный уровень, который имеет ряд методов. Эти методы реализованы кэширование, как следующее:Как выполнить тестирование службы, использующей кеширование?
string key = "GetCategories";
if (CacheHandler.IsCachingEnabled() && !CacheHandler.ContainsKey(key))
{
var categories = RequestHelper.MakeRequest("get_category_index")["categories"];
var converted = categories.ToObject<List<Category>>();
CacheHandler.InsertToCache(key,converted);
return converted;
}
return CacheHandler.GetCache(key) as List<Category>;
Теперь проблема, я также хочу, чтобы сделать модульное тестирование, как следующее:
[TestMethod]
public void GetCategories()
{
IContentService contentService = new ContentService();
var resp = contentService.GetCategories();
Assert.IsNotNull(resp,"Should not be null");
}
Проблема заключается в том, что HttpContext.Current
внутри моей CacheHandler
является нулевым во время модульного теста (очевидно).
Что является самым простым способом исправить это?
(Пожалуйста, как можно точнее, потому что я не сделал много модульного тестирования раньше)
Это сработало! Отлично! Это действительно помогло мне сразу :) Это Rhino Mocks также очень хорошо. благодаря –