Как имитировать зависимости библиотек в приложении-функции 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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