首页 > 解决方案 > C# Moq 实体框架 6.1.3 不区分大小写

问题描述

要对我正在使用的实体框架服务进行单元测试Moq。普通数据库使用排序规则SQL_Latin1_General_CP1_CI_AS,因此不区分大小写。是否也可以使模拟的ApplicationDbContext大小写不敏感?

当前代码:

private Mock<ApplicationDbContext> GetMockedApplicationDbContext()
{
    var mockedPoliceRegion = GetMockedPoliceRegion();

    var mockContext = new Mock<ApplicationDbContext>();
    mockContext.Setup(c => c.PoliceRegions).Returns(mockedPoliceRegion.Object);

    return mockContext;
}

private Mock<DbSet<PoliceRegion>> GetMockedPoliceRegion()
{
    IQueryable<PoliceRegion> data = new List<PoliceRegion>
    {
        new PoliceRegion() {Name = "Syd"},

    }.AsQueryable();

    var mockSet = new Mock<DbSet<PoliceRegion>>();
    mockSet.As<IQueryable<PoliceRegion>>().Setup(m => m.Provider).Returns(data.Provider);
    mockSet.As<IQueryable<PoliceRegion>>().Setup(m => m.Expression).Returns(data.Expression);
    mockSet.As<IQueryable<PoliceRegion>>().Setup(m => m.ElementType).Returns(data.ElementType);
    mockSet.As<IQueryable<PoliceRegion>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

    return mockSet;
}

标签: c#unit-testingnunitmoq

解决方案


推荐阅读