我正在尝试对用于内存缓存的 ServiceStack 服务进行单元测试。我正在使用 MockRequestContext ,当我点击返回 base.RequestContext.ToOptimizedResultUsingCache 时,我得到一个索引超出范围异常。我不确定缺少什么。是否可以使用此模拟请求上下文对使用缓存的服务进行单元测试?
测试代码
[TestMethod]
public void GetAgencyCase_Returns_AgencyCaseDetailsResponse()
{
var service = _container.Resolve<AgencyCaseService>();
service.SetResolver(new BasicResolver(_container));
service.RequestContext = new MockRequestContext();
var response = service.Get(new GetAgencyCase { AgencyId = 2, AgencyCaseNumber = "123" });
}
以及对我正在测试的服务中的缓存优化扩展方法的调用。
return base.RequestContext.ToOptimizedResultUsingCache<AgencyCaseDetailsResponse>(base.Cache, cacheKey, cacheExpireTime, () =>
{...
来自 IndexOutOfRangeException 的堆栈跟踪
at ServiceStack.Common.Web.ContentType.IsBinary(String contentType)
at ServiceStack.CacheAccess.Providers.CacheClientExtensions.ResolveFromCache(ICacheClient cacheClient, String cacheKey, IRequestContext context)
at ServiceStack.ServiceHost.RequestContextExtensions.ToOptimizedResultUsingCache[T](IRequestContext requestContext, ICacheClient cacheClient, String cacheKey, Nullable`1 expireCacheIn, Func`1 factoryFn)