Задать вопрос
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 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
Решения вопроса 1
Kamrit
@Kamrit Автор вопроса
QA Engineer
Причина была в том, что не правильный FindManyAsync использовалось
помог следущий код:
_repository.Setup(x => x.FindOneAsync((It.IsAny<Expression<Func<Friendship, bool>>>()))).ReturnsAsync(friendship);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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