与MS Fakes的Stub通用接口

时间:2016-02-11 13:48:57

标签: c# unit-testing microsoft-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>的存根。

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

如果语法允许使用'!'进行过滤,则会引发问题。我试过的几个变种不起作用(“IRepository!TModel”)。以下是有关Parameter Naming Type Conventions的一些信息。