【发布时间】:2012-04-30 10:59:30
【问题描述】:
我正在编写一些单元测试,我想知道模拟 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();
每次我使用缓存时都像这样检查缓存是否为空是否正确,或者您是否也会在测试中模拟缓存,以便在运行单元测试时它不为空?
【问题讨论】:
标签: c# unit-testing caching design-patterns moq