相关疑难解决方法(0)

在单元测试中模拟IMemoryCache

我正在使用asp net core 1.0和xunit.

我正在尝试为一些使用的代码编写单元测试IMemoryCache.但是每当我尝试在I中设置一个值时,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
}
Run Code Online (Sandbox Code Playgroud)

这是班级测试......

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)});
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是......我需要以IMemoryCache某种方式设置吗?为DefaultValue设置一个值?当IMemoryCache被嘲笑什么是默认值?

c# unit-testing moq mocking asp.net-core

17
推荐指数
3
解决办法
8715
查看次数

标签 统计

asp.net-core ×1

c# ×1

mocking ×1

moq ×1

unit-testing ×1