Moq:继承自通用接口的Mock接口

时间:2016-04-27 16:36:31

标签: c# .net unit-testing moq

我的接口定义如下:

public interface IBaseRepository<T>
{
    IQueryable<T> All();
}

然后,我有一个扩展它的接口:

public interface IAccountRepository : IBaseRepository<AccountModel>
{
}

然而,在我的测试中,当我尝试模仿IAccountRepository并调用IAccountRepository.All()的设置时,Moq不允许我使用Returns方法来定义结果

var mockAccountRepository = new Mock<IAccountRepository>();
mockAccountRepository.Setup(x => x.All()).Returns(...); // "Returns" can't work here for some reason.

如何在继承通用接口的接口上模拟基本方法?

1 个答案:

答案 0 :(得分:4)

mockAccountRepository.Setup(x => x.All()).Returns(new List<AccountModel>().AsQueryable());