Mock EF асинхронные методы dbContext с использованием NSubstitute 4.0 - PullRequest
1 голос
/ 25 марта 2019

Я получил ошибку при попытке использовать NSubstitute в моем DbContext. До сих пор я использовал пакет 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 Метод не найден: 'Система .__ Canon NSubstitute.Arg.Any ()'. NSubstitute.NSubstituteDbSetExtensions.SetupData [TEntity] (DbSet'1 dbSet, данные ICollection'1, поиск Func'2)

Интересно, есть ли хорошее решение для имитации контекста EF с помощью асинхронной поддержки, или мне просто придерживаться версии 3.1.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...