<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>ISE Developer Blog</provider_name><provider_url>https://devblogs.microsoft.com/ise</provider_url><author_name>Florian Wagner</author_name><author_url>https://devblogs.microsoft.com/ise/author/flwagner/</author_url><title>Unit Testing Azure DevOps UI Extensions - ISE Developer Blog</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="uU77UISjXm"&gt;&lt;a href="https://devblogs.microsoft.com/ise/unit-testing-azure-devops-ui-extensions/"&gt;Unit Testing Azure DevOps UI Extensions&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://devblogs.microsoft.com/ise/unit-testing-azure-devops-ui-extensions/embed/#?secret=uU77UISjXm" width="600" height="338" title="&#x201C;Unit Testing Azure DevOps UI Extensions&#x201D; &#x2014; ISE Developer Blog" data-secret="uU77UISjXm" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://devblogs.microsoft.com/ise/wp-includes/js/wp-embed.min.js
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://devblogs.microsoft.com/ise/wp-content/uploads/sites/55/2021/03/unittestcseblog_feature_image.png</thumbnail_url><thumbnail_width>1112</thumbnail_width><thumbnail_height>597</thumbnail_height><description>Mocking cloud service dependencies in modern applications is essential for independent unit testing. We show how to mock all relevant parts of the Azure DevOps Extension SDK, Azure DevOps Extension API as well as other external APIs to create meaningful unit tests for Azure DevOps UI Extensions and reach full code coverage.</description></oembed>
