Я пытаюсь выполнить модульное тестирование следующего метода
public List GetFilesInGCS(string bucket, string node)
{
List fileNames = new List();
try
{
log.Info($"Getting files from {bucket}...");
foreach (var storageObject in storageClient.ListObjects(bucket, node))
fileNames.Add(storageObject.Name);
log.Info($"Total files: {fileNames.Count}");
}
catch (Exception ex)
{
Task.Run(async () => { await _emailer.SendErrorAsync(ex); });
log.Error(ex);
}
return fileNames;
}
Проблема в том, что я не знаю, как правильно имитировать возврат метода ListObjects. Он возвращает абстрактный класс PageEnumerable.
Это то, что у меня есть на данный момент.
[Test]
public void TestGetFilesInGCS()
{
Mock storageClientMock = new Mock(MockBehavior.Loose);
storageClientMock.Setup(m => m.ListObjects(It.IsAny(), It.IsAny(), It.IsAny()));
GoogleService g = new GoogleService(storageClientMock.Object);
var files = g.GetFilesInGCS("test", "test");
Assert.That(files, Is.Not.Empty);
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... -using-moq