【发布时间】:2020-08-08 16:59:04
【问题描述】:
(.Net 核心 3.1,EF 核心 3) 我有以下 xUnit/Moq 设置:
private readonly IDbContext _dbContext;
public MyTests()
{
var contextMock = new Mock<IDbContext>();
var dbSetMock = new List<MyEntity>
{
new MyEntity("...", "A"),
new MyEntity("...", "B"),
new MyEntity("...", "C"),
new MyEntity("...", "D"),
}.AsQueryable().BuildMockDbSet();
contextMock.Setup(x => x.MyEntities).Returns(dbSetMock.Object);
_dbContext = contextMock.Object;
}
public async Task GetValueTest()
{
var sut = new GetValueQueryHandler(_dbContext);
var result = await sut.Handle();
result.IsSuccess.ShouldBeTrue();
}
在函数GetValueQueryHandler.Handler()中,它调用
var ids = _dbContext.MyEntities.FromSqlRaw(sql);
但是,它会引发错误?
在 Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.FromSqlOnQueryable[TEntity](IQueryable`1 源,字符串 sql,对象 [] 参数) 在 MockQueryable.TestAsyncEnumerable`1.CompileExpressionItem[TResult](表达式表达式) 在 MockQueryable.TestAsyncEnumerable`1.System.Collections.Generic.IEnumerable.GetEnumerator() 在 Portal.Application.Restrictions.Queries.GetSymbolsAndTypes.GetSymbolsAndTypesQueryHandler.c__DisplayClass4_0.g__GetIds|0>d.MoveNext()方法或操作没有实现。
【问题讨论】:
标签: c# entity-framework-core moq xunit