Использование Application Insights с модульными тестами?

У меня есть веб-приложение MVC, и я использую Simple Injector для DI. Почти весь мой код покрыт юнит-тестами. Однако теперь, когда я добавил несколько вызовов телеметрии в некоторые контроллеры, у меня возникли проблемы с настройкой зависимостей.

Телеметрические вызовы предназначены для отправки метрик в службу Application Insights, расположенную в Microsoft Azure. Приложение не работает в Azure, просто сервер с ISS. Портал ИИ расскажет вам все о вашем приложении, включая любые пользовательские события, которые вы отправляете с помощью библиотеки телеметрии. В результате для контроллера требуется экземпляр Microsoft.ApplicationInsights.TelemetryClient, который не имеет интерфейса и представляет собой закрытый класс с двумя конструкторами. Я попытался зарегистрировать это так (гибридный образ жизни не имеет отношения к этому вопросу, я просто включил его для полноты):

      // hybrid lifestyle that gives precedence to web api request scope
        var requestOrTransientLifestyle = Lifestyle.CreateHybrid(
            () => HttpContext.Current != null,
            new WebRequestLifestyle(),
            Lifestyle.Transient);

       container.Register<TelemetryClient>(requestOrTransientLifestyle);

Проблема в том, что, поскольку TelemetryClient имеет 2 конструктора, SI жалуется и не проходит проверку. Я нашел пост, показывающий, как переопределить поведение разрешения конструктора контейнера, но это кажется довольно сложным. Сначала я хотел сделать резервную копию и задать этот вопрос:

Если я не сделаю TelemetryClient внедренной зависимостью (просто создаю новую в классе), будет ли эта телеметрия отправляться в Azure при каждом запуске модульного теста, создавая много ложных данных? Или Application Insights достаточно умен, чтобы знать, что он выполняется в модульном тесте, а не отправлять данные?

Любое "понимание" в этом вопросе будет высоко ценится!

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос