我正在使用 asp net core 1.0 和 xunit。
我尝试编写一个单元测试来测试使用 IMemoryCache
的代码。然而,每当我尝试在 IMemoryCache
中设置一个值时,我会收到 Null 引用错误。
我的单元测试代码如下:
IMemoryCache
被注入到我想要测试的类中。但是,当我尝试在测试中设置缓存中的值时,我遇到了空引用错误。
public Test GetSystemUnderTest()
{
var mockCache = new Mock<IMemoryCache>();
return new Test(mockCache.Object);
}
[Fact]
public void TestCache()
{
var sut = GetSystemUnderTest();
sut.SetCache("key", "value"); //NULL Reference thrown here
}
这是一个名为Test的类...
public class Test
{
private readonly IMemoryCache _memoryCache;
public Test(IMemoryCache memoryCache)
{
_memoryCache = memoryCache;
}
public void SetCache(string key, string value)
{
_memoryCache.Set(key, value, new MemoryCacheEntryOptions {SlidingExpiration = TimeSpan.FromHours(1)});
}
}
我的问题是...我需要设置IMemoryCache
吗?为DefaultValue设置一个值吗?当IMemoryCache
被模拟时,它的默认值是什么?