Moq, типы между Setup () и Returns () не совпадают - PullRequest
4 голосов
/ 04 апреля 2019

У меня есть интерфейс:

public interface IPeopleService
{
    Task<List<Person>> GetPeople();
}

Вот мой код для макета возврата по запросу:

List<Person> people = ...;
var mockPeopleService = new Mock<IPeopleService>();
 mockPeopleService.Setup(ps => ps.GetPeople()).Returns<Task<List<Person>>>(Task.FromResult(people));

Ошибка сохраняется независимо от того, что я сделал .....

enter image description here

После попытки использования ReturnsAsync () он показывает эту ошибку:

mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);

enter image description here

Обновление 2:

enter image description here

1 Ответ

4 голосов
/ 04 апреля 2019

Проблема вашего подхода в том, что вы используете этот метод:

IReturnsResult<TMock> Returns<T>(Func<T, TResult> valueFunction);

В вашем примере не имеет смысла использовать эту перегрузку.Просто бросьте T.Также может быть полезно использовать ReturnsAsync.

mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);
...