Я использую следующие пакеты Nuget в моем модульном тестовом проекте, созданном в приложении .Net core 2.0.
![enter image description here](https://i.stack.imgur.com/JCZuf.png)
Я создал базу данных InMemory дляМодульное тестирование.
Всякий раз, когда я выполняю тестовый блок, который включает в себя операции обновления, я получаю исключение
"экземпляр типа сущности" имя таблицы "не может быть отслежен, потому что другой экземпляр сто же самое значение ключа для {Id} ia уже отслеживается. Когда присоединяете существующие сущности, убедитесь, что только один экземпляр сущности с данным значением ключа присоединен ".
Это связано с методом FindByAsync
который содержит AsNoTracking()
метод.Метод выглядит примерно так, как показано ниже.
public virtual FindByAsync()
{
Query= Query.AsNoTracking().AsExpandable.().Where(predicate);
}
Когда я комментирую эту функцию AsNoTracking()
.Модульный тест успешен.
Любые идеи, предложения или обходные пути, которые помогут мне успешно выполнить неудачные тесты.