Создать список > для модульного теста - PullRequest
1 голос
/ 08 мая 2020

Я хочу протестировать метод, который получает List<Task<IEnumerable<MyData>>> в качестве параметра

public async Task<HashSet<Data>> MyMethod(List<Task<IEnumerable<MyData>>> asyncTasks)

В какой-то момент метода, который я хочу протестировать, есть следующее назначение:

var someDetails =  await asyncTasks[i] ;

Мой сценарий заключается в том, что в тесте я создаю список MyData, который я хочу протестировать, но мне нужно, чтобы это выглядело как результат строки выше. 1010 *

1 Ответ

2 голосов
/ 08 мая 2020

Давайте сделаем это шаг за шагом.

Вы говорите, что у вас уже есть список MyData:

List<MyData> dataList = ...;

List<T> реализует IEnumerable<T>, поэтому:

IEnumerable<MyData> dataEnumerable = dataList;

Давайте сделаем это задачей, создав простую задачу, которая просто возвращает этот IEnumerable в качестве результата:

Task<IEnumerable<MyData>> task = Task.FromResult(dataEnumerable);

Теперь мы создадим одноэлементный список, содержащий именно этот элемент:

var taskList = new List<Task<IEnumerable<MyData>>>() { task };

Вуаля, вот и ваш List<Task<IEnumerable<MyData>>>.

...