Я пишу слой доступа к данным для своего приложения и пытаюсь смоделировать зависимость CosmosDB SDK для модульного тестирования.Я использую NUnit с NSubstitute и столкнулся с проблемой, где я пытаюсь смоделировать возвращаемые значения для Container.GetItemQueryIterator.
Я успешно предоставил фиктивный feedIterator в качестве ответа на этот вызов и фиктивный feedResponse в качестве возвращаемого значения для feedIterator.ReadNextAsync, но я не могу понять, как ввести какие-либо значения в FeedResponse для проверки
Код, который я пытаюсь протестировать, выглядит следующим образом:
var feedIterator = container.GetItemQueryIterator<T>(queryDefinition);
while (feedIterator.HasMoreResults){
result.success = true;
foreach (var item in await feedIterator.ReadNextAsync()){
list.Add(item);
}
}
Моя попытка смоделировать зависимости следующим образом (упрощенно):
this.mockFeedResponse = Substitute.For<FeedResponse<T>>(this.mockApplicationList);
this.mockFeedIterator = Substitute.For<FeedIterator<T>>();
this.mockFeedIterator.ReadNextAsync().ReturnsForAnyArgs(Task.FromResult(this.mockFeedResponse));
this.mockFeedIterator.HasMoreResults.Returns(true);
Lookingв документации AzureCosmosDB SDK, кажется, есть конструктор FeedResponse для моделирования, который принимает IEnumerable в качестве параметра, но NSubstitute жалуется, говоря, что не может найти этот конструктор, когда я пытаюсь передать список для использования.Есть ли альтернатива, что я могу кормить некоторые IEnumerable в качестве FeedResponse?Куда я иду не так?