Usando o Application Insights com testes de unidade?

Eu tenho um aplicativo da Web MVC e estou usando o Simple Injector for DI. Quase todo o meu código é coberto por testes de unidade. No entanto, agora que adicionei algumas chamadas de telemetria em alguns controladores, estou tendo problemas para configurar as dependências.

As chamadas de telemetria destinam-se ao envio de métricas para o serviço Application Insights hospedado no Microsoft Azure. O aplicativo não está sendo executado no Azure, apenas um servidor com ISS. O portal do AI mostra todos os tipos de coisas sobre seu aplicativo, incluindo eventos personalizados que você envia usando a biblioteca de telemetria. Como resultado, o controlador requer uma instância do Microsoft.ApplicationInsights.TelemetryClient, que não possui Interface e é uma classe selada, com 2 construtores. Tentei registrá-lo dessa maneira (o estilo de vida híbrido não está relacionado a essa pergunta, apenas o incluí por completo):

      // 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);

O problema é que, como o TelemetryClient possui 2 construtores, o SI reclama e falha na validação. Encontrei um post mostrando como substituir o comportamento de resolução do construtor do contêiner, mas isso parece bastante complicado. Primeiro, eu queria fazer backup e fazer esta pergunta:

Se eu não tornar o TelemetryClient uma dependência injetada (basta criar um Novo na classe), a telemetria será enviada ao Azure em todas as execuções do teste de unidade, criando muitos dados falsos? Ou o Application Insights é inteligente o suficiente para saber que está sendo executado em um teste de unidade e não enviar os dados?

Qualquer "Insights" sobre esse problema seria muito apreciado!

obrigado

questionAnswers(5)

yourAnswerToTheQuestion