首页 > 解决方案 > 如何在单元测试项目中创建新对象?

问题描述

我有一个使用接口的类。我想在我的单元测试中使用这个类本身,但我不知道该怎么做。

我的代码:

public class Store
{
    private readonly ICache _Cache;
    public CacheStore(ICache cache)
    {
        _Cache= cache;
    } 
}

现在如何使用 CacheStore 类?

[Test]
public void test_method()
{
    var options = new CacheStore(??);
}

标签: c#unit-testingasp.net-core

解决方案


您需要模拟您的 ICache 接口。

说如果你有商店类是这样定义的

public class Store
{
    private readonly ICache _Cache;

    public Store(ICache cache)
    {
         _Cache = cache;
    }
}

在您的单元测试中,您必须创建一个 Moq 对象ICache

Mock<ICache> _icache = new Mock<ICache>();

您可以Store使用 Moq 对象创建对象:

Store _s = new Store(_icache.Object);

之后,您可以使用 Moq 的 SetUp 方法设置必填字段。如果您是新的 Mocking,请参考以下链接


推荐阅读