我有一個應用程序使用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