Как имитировать зависимости библиотек в приложении-функции Azure, не добавляя библиотеки в качестве зависимостей тестовоC#

Место общения программистов C#
Anonymous
Как имитировать зависимости библиотек в приложении-функции Azure, не добавляя библиотеки в качестве зависимостей тестово

Сообщение Anonymous »

Я хочу протестировать приложение-функцию Azure (.NET 8) с помощью Moq.
Решение состоит из двух проектов:
  • AssetGovernace (источник)
  • AssetGovernace.Tests (тесты)
Хотя я могу легко издеваться out IApplicationService, IApplicationNotificationRepository и IQueueService, например:

Код: Выделить всё

var _applicationServiceMock = new Mock();
Я не знаю, как имитировать IMapper (AutoMapper), IConfiguration и ILogger без включения соответствующих зависимостей пакета AssetGovernance< /code> в AssetGovernance.Tests, чтобы сделать интерфейсы доступными. Это правильный подход? Тогда мне пришлось бы синхронизировать версии пакетов между исходным и тестовым проектами.
Просматривая этот пример репозитория, я не вижу, что тестовый проект дублирует все зависимости исходного проекта, но это не решает моих проблем.
https://github.com/Azure-Samples/azure- ... /tree/main
Как мне смоделировать эти зависимости платформы и библиотеки в приложении-функции Azure?

Код: Выделить всё

ApplicationGovernanceService
класс:

Код: Выделить всё

public class ApplicationGovernanceService(
IApplicationService applicationService,
IApplicationNotificationRepository applicationNotificationRepository,
IQueueService queueService,
IMapper mapper,
IConfiguration configuration,
ILogger logger)
: IApplicationGovernanceService

Код: Выделить всё

IApplicationGovernanceService
интерфейс:

Код: Выделить всё

public interface IApplicationGovernanceService
{
public Task CheckApplicationOwnership(CancellationToken cancellationToken = default);
}
Бонус: есть ли способ внедрить зависимости в тестовый проект?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-the-lib

Вернуться в «C#»