Задать вопрос
Kamrit
@Kamrit
QA Engineer

Как мокнуть асинхронный метод?

Есть интерфейс:
interface IRepository<TEntity> where TEntity : class
в котором есть метод Task<TEntity> FindOneAsync(string id);. Я пытаюсь мокнуть даный код:
private Mock<IRepository<Friendship>> _repository = new Mock<IRepository<Friendship>>();

_repository.Setup(x => x.FindOneAsync(It.IsAny<string>())).ReturnsAsync(()=> new Friendship());

но метод мне всегда возврасщает null.
Кто-то сталкивался уже с этим? Подскажите, что делать.
  • Вопрос задан
  • 171 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
Kamrit
@Kamrit Автор вопроса
QA Engineer
Причина была в том, что не правильный FindManyAsync использовалось
помог следущий код:
_repository.Setup(x => x.FindOneAsync((It.IsAny<Expression<Func<Friendship, bool>>>()))).ReturnsAsync(friendship);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы