我有一个应用程序使用custom traces/metrics写入应用程序INsights,也使用REST API在仪表板上读取数据。 我的问题是我的单元测试可以模拟自定义跟踪(TelemetryClient)和REST API吗?模拟微软应用程序洞察API
我看到REST API有一个DEMO版本,但提供随机信息。如果我可以设置DEMO仪器密钥来写入和读取它以进行单元测试,那将会很有帮助。让我知道。
我有一个应用程序使用custom traces/metrics写入应用程序INsights,也使用REST API在仪表板上读取数据。 我的问题是我的单元测试可以模拟自定义跟踪(TelemetryClient)和REST API吗?模拟微软应用程序洞察API
我看到REST API有一个DEMO版本,但提供随机信息。如果我可以设置DEMO仪器密钥来写入和读取它以进行单元测试,那将会很有帮助。让我知道。
我提供的方法是(对于任何外部组件)在遥测客户端周围创建某种包装,然后很容易嘲笑它或稍后在需要时替换它。
我想尝试的另一种方法是使用TelemetryClient
构造函数超载TelemetryConfiguration
和模拟TelemetryChannel
。
var client = new TelemetryClient(
new TelemetryConfiguration
{
TelemetryChannel = new MOCK...
});
而是嘲讽出来的东西,它可能是更好的去与你的第二个想法,实际上创建另一个应用程序的见解资源,并使用仪器的关键在单元测试资源。有a blog post with information about using multiple environments这应该带领你在正确的方向。
我建议你甚至可以为开发者/调试版本做类似的事情,这样只有你的“生产”遥测才能转到你的实际情况,然后所有的开发/测试遥测都转到另一个资源。
是的,旋转按键是一个好主意,只有在触及真正的自动化测试应用程序时受到阻碍才会“读取写入” - 由于开发人员模式中的写入延迟也是不方便的(大约一分钟或2分钟) – Praveen