Veg*_*sen 13 c# unit-testing entity-framework async-await
我正在尝试在一个新项目中对我的第一个存储库进行单元测试,我们决定使用EF6主要用于异步内容.我遇到了为我的模型伪造IDbSet的问题,并允许在使用新的异步细节之前使用任何Linq.
我正在使用这篇文章中提供的FakeDbSet .如果我做一个简单的查询,比如
await set.FirstOrDefaultAsync(e => e.Approved);
Run Code Online (Sandbox Code Playgroud)
这很棒.
我尝试这样做时会出现问题:
await set.OrderByDescending(e => e.Date)
.FirstOrDefaultAsync(e => e.Approved)`
Run Code Online (Sandbox Code Playgroud)
然后我收到一个错误:
System.InvalidOperationException:源IQueryable的提供程序未实现IDbAsyncQueryProvider.
通过拆分流畅的语法并检查每一步的结果,我很清楚IDbAsyncQueryProvider在第一个"普通"Linq运算符(例如OrderBy,Where或Select)之后消失.
我怎样才能让它发挥作用?
更新(因为有一些混乱):有2个项目; 称他们为存储库和测试.测试课程参考资料库.调用Where发生在Repository中,它不知道FakeDbSet(也不应该知道它,因为它是一个仅测试类).
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |