以下是由于内存dbset不支持.ToListAsync()而导致的.ShouldNotThrow()测试失败的一种测试(我没有确切的用词,但您知道了)。如果有任何重要意义,我正在尝试模拟Entity Framework ver提供的dbset。6.1.3:
[TestFixture]
public class Tests
{
private SomeRepository _repository;
private Mock<DbSet<SomeEntity>> _mockDbSet;
private Mock<IApplicationDbContext> _mockAppDbContext;
[OneTimeSetUp]
public void TestFixtureSetUp()
{
_mockDbSet = new Mock<DbSet<SomeEntity>>();
_mockAppDbContext = new Mock<IApplicationDbContext>();
_mockAppDbContext.SetupGet(c => c.Gigs).Returns(_mockGigsDbSet.Object);
_repository = new SomeRepository(_mockAppDbContext.Object);
}
[Test]
public void Test()
{
// Setup
var results = (IEnumerable<SomeEntity>) null;
var singleEntity = new SomeEntity {Id = "1"};
_mockDbSet.SetSource(new List<SomeEntity> { singleEntity });
// Act
var action = new Func<Task>(async () =>
{
results = await _repository.GetMultipleAsync(); //this ends up …Run Code Online (Sandbox Code Playgroud)