最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

c# - Mocking EF DbContext using Moq not returning DbSet as IQueryable - Stack Overflow

programmeradmin0浏览0评论

I have this code:

IQueryable<AccessPoint> testAcP =
    new List<AccessPoint>() { new AccessPoint() { Id = 1, Token = "testPoint", Enabled = 1 } }.AsQueryable();
var mockSet = new Mock<DbSet<AccessPoint>>();

mockSet.As<IQueryable<AccessPoint>>().Setup(m => m.Provider).Returns(testAcP.Provider);
mockSet.As<IQueryable<AccessPoint>>().Setup(m => m.Expression).Returns(testAcP.Expression);
mockSet.As<IQueryable<AccessPoint>>().Setup(m =>m.ElementType).Returns(testAcP.ElementType);
mockSet.As<IQueryable<AccessPoint>>().Setup(m => m.GetEnumerator()).Returns(testAcP.GetEnumerator());
        
var dbContext = new Mock<IApplicationDbContext>();

dbContext.Setup(c => c.AccessPoints).Returns(mockSet.Object);
var filter = new AccessPointsFilter() { Enabled = AcPassState.Active };

var areaService = new AccessPointsService(new QuerySelector<AccessPoint>(), new QueryOrderer<AccessPoint>(), dbContext.Object);
    
var result = dbContext.Object.AccessPoints.AsQueryable();

The result is empty. What am I doing wrong?

I expect to get DbSet as IQueryable, but now it is empty.

发布评论

评论列表(0)

  1. 暂无评论