尝试在我的DbContext上使用NSubstitute时出现错误。到目前为止,我已经使用EntityFramework.Testing包和以下代码在测试中设置了DbContext。非常简单,这是他们网站上的示例:
// Create some test data
var data = new List<Blog>
{
new Blog{ Name = "BBB" },
new Blog{ Name = "CCC" },
new Blog{ Name = "AAA" }
};
// Create a DbSet substitute.
var set = Substitute.For<DbSet<Blog>, IQueryable<Blog>, IDbAsyncEnumerable<Blog>>()
.SetupData(data);
var context = Substitute.For<BloggingContext>();
context.Blogs.Returns(set);
这与版本3.1.0
很好地配合,但是如果我将NSubstitute升级到4.0
,则会引发以下异常。
System.MissingMethodException 找不到方法:“ System .__ Canon NSubstitute.Arg.Any()”。 NSubstitute.NSubstituteDbSetExtensions.SetupData [TEntity](DbSet'1 dbSet,ICollection'1数据,Func'2查找)
我想知道是否有一个很好的解决方案来模拟具有异步支持的EF上下文,还是我应该坚持使用3.1.0。