与 MS Fakes 存根通用接口

Stub generic Interface with MS Fakes

如何创建存根IRepository<TModel>?我有 3 个接口:

namespace DataAccessLayer.Repository.Interfaces 
{
    public interface IRepository<TModel> : IDisposable {...}
    public interface ICustomerRepository : IRepository<CustomerModel> {...}
    public interface IRepositoryContainer {...}
}

我的 DataAccessLayer.fakes 看起来如下:

<StubGeneration>
    <Clear/>
    <Add FullName="DataAccessLayer.Repository.Interfaces.IRepositoryContainer!"/>
    <Add FullName="DataAccessLayer.Repository.Interfaces.IRiadRepository!"/>
    <Add FullName="DataAccessLayer.Repository.Interfaces.IRepository!"/>
</StubGeneration>

在我的单元测试中,我可以看到 StubIRepositoryContainerICustomerRepository,但未生成 IRepository<TModel> 的存根。

谢谢。

我认为你的名字过滤太有限了。尝试删除 '!'来自你的 fakes 配置文件中的 IRepository 行。

<Add FullName="DataAccessLayer.Repository.Interfaces.IRepository"/>

这引发了一个问题,即语法是否允许使用“!”进行过滤。我尝试的几个变体都没有用 ("IRepository!TModel")。这里有一些关于 Parameter Naming Type Conventions.

的信息