2017-04-05 72 views
1

我有一个应用程序使用custom traces/metrics写入应用程序INsights,也使用REST API在仪表板上读取数据。 我的问题是我的单元测试可以模拟自定义跟踪(TelemetryClient)和REST API吗?模拟微软应用程序洞察API

我看到REST API有一个DEMO版本,但提供随机信息。如果我可以设置DEMO仪器密钥来写入和读取它以进行单元测试,那将会很有帮助。让我知道。

回答

1

我提供的方法是(对于任何外部组件)在遥测客户端周围创建某种包装,然后很容易嘲笑它或稍后在需要时替换它。

我想尝试的另一种方法是使用TelemetryClient构造函数超载TelemetryConfiguration和模拟TelemetryChannel

var client = new TelemetryClient(
    new TelemetryConfiguration 
    {     
     TelemetryChannel = new MOCK... 
    }); 
0

而是嘲讽出来的东西,它可能是更好的去与你的第二个想法,实际上创建另一个应用程序的见解资源,并使用仪器的关键在单元测试资源。有a blog post with information about using multiple environments这应该带领你在正确的方向。

我建议你甚至可以为开发者/调试版本做类似的事情,这样只有你的“生产”遥测才能转到你的实际情况,然后所有的开发/测试遥测都转到另一个资源。

+0

是的,旋转按键是一个好主意,只有在触及真正的自动化测试应用程序时受到阻碍才会“读取写入” - 由于开发人员模式中的写入延迟也是不方便的(大约一分钟或2分钟) – Praveen