In Development
Last Updated: 08 Oct 2024 09:38 by ADMIN

This article mentions a package that can be used to very easily mock Entity Framework types (mainly DbContext). However, this package only works for Entity Framework 6, and not Entity Framework Core, which my project uses. I would love to see this package updated to greatly simplify unit testing for my project.

I'm specifically looking to mock the following types: IDbContextFactory, my subclass of DbContext, and DbSet. All of this is currently possible of course with the standard JustMock interface but it's a hassle.

In Development
Last Updated: 08 Oct 2024 09:32 by ADMIN
Created by: Ivo
Comments: 0
Type: Feature Request
2

Collection mock (result from ReturnCollection clause) does not support async queries due to the unimplemented IAsyncQueryProvider interface. The issue could be easily reproduced with the following simple test:

[Fact]
public void ShouldReturnEntity()
{
    var db = Mock.Create<MyModel.MyModel>();
    Mock.Arrange(() => db.SomeEntities).ReturnsCollection(someEntities);

    var entity = db.SomeEntities.SingleAsync(x => x.Id == 1);

    Assert.NotNull(entity);
}

The outcome is the the following exception:

System.InvalidOperationException
The provider for the source 'IQueryable' doesn't implement 'IAsyncQueryProvider'. Only providers that implement 'IAsyncQueryProvider' can be used for Entity Framework asynchronous operations.

In Development
Last Updated: 08 Oct 2024 09:32 by ADMIN
Created by: Drew
Comments: 0
Type: Feature Request
1

There are no ReturnsAsync methods for mocking container async methods.

There should be a set of methods to mock async methods of a container similar to regular object mocking.

As a user I should be able to write code like:

 

container.Arrange<IContainer>(r => r.SomeAsyncMethod("data")).ReturnsAsync("returnValue");