unexpected
Version:
Extensible BDD assertion toolkit
147 lines (119 loc) • 7.67 kB
HTML
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0">
<link rel="stylesheet" href="../../static/normalize.css" type="text/css" media="screen" />
<link rel="stylesheet" href="../../static/main.css" type="text/css" media="screen" />
<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="../../static/bug-icon-black.ico">
<title>async</title>
</head>
<body class="sidebar-hidden has-sidebar">
<header>
<div class="logo-icon"></div>
<nav>
<ul>
<li class="menu-toggle-item">
<button class="menu-toggle" onclick="toggleSidebar()"></button>
</li>
<li class=""><a href="../..">Unexpected</a></li>
<li class=""><a href="../../assertions/any/to-be">Assertions</a></li>
<li class="active"><a href="../addAssertion">API</a></li>
<li class=""><a href="../../plugins">Plugins</a></li>
</ul>
</nav>
<div class="search" style="visibility: hidden">
<input id="search" placeholder="Search..." value="">
<div id="searchDropDown" class="dropDown">
<ul id="searchResults"></ul>
</div>
</div>
</header>
<section id="api">
<nav id="api-menu" class="sidebar js-remember-scroll-position">
<ul>
<li class="">
<a href="../addAssertion">addAssertion</a>
</li>
<li class="">
<a href="../addType">addType</a>
</li>
<li class="active">
<a href="">async</a>
</li>
<li class="">
<a href="../clone">clone</a>
</li>
<li class="">
<a href="../expect">expect</a>
</li>
<li class="">
<a href="../fail">fail</a>
</li>
<li class="">
<a href="../promise">promise</a>
</li>
<li class="">
<a href="../promise-all">promise.all</a>
</li>
<li class="">
<a href="../promise-any">promise.any</a>
</li>
<li class="">
<a href="../promise-settle">promise.settle</a>
</li>
<li class="">
<a href="../toString">toString</a>
</li>
<li class="">
<a href="../UnexpectedError">UnexpectedError</a>
</li>
<li class="">
<a href="../use">use</a>
</li>
<li class="">
<a href="../withError">withError</a>
</li>
</ul>
</nav>
<div class="main" tabindex="-1">
<div class="content">
<h1 id="expect-async-">expect.async(...)</h1>
<p>Unexpected comes with build in support for asynchronous assertions.</p>
<p>Internally Unexpected uses promises to orchestrate the asynchronous
computation and in test frameworks like <a href="http://mochajs.org/">Mocha</a>
that supports promises out of the box, you will be able to just return
the promise of an asynchronous assertion:</p>
<div class="code lang-javascript">
<div><span style="color: #000000">describe</span><span style="color: #000000">(</span><span style="color: #df5000">'asynchronous testing'</span><span style="color: #000000">,</span> <span style="color: #a71d5d">function</span> <span style="color: #000000">()</span> <span style="color: #000000">{</span></div>
<div> <span style="color: #000000">it</span><span style="color: #000000">(</span><span style="color: #df5000">'should be fun'</span><span style="color: #000000">,</span> <span style="color: #a71d5d">function</span> <span style="color: #000000">()</span> <span style="color: #000000">{</span></div>
<div> <span style="color: #a71d5d">return</span> <span style="color: #000000">expect</span><span style="color: #000000">(</span>middleware<span style="color: #000000">,</span> <span style="color: #df5000">'to yield exchange'</span><span style="color: #000000">,</span> <span style="color: #000000">{</span></div>
<div> request<span style="color: #000000">:</span> <span style="color: #000000">{</span> url<span style="color: #000000">:</span> <span style="color: #df5000">'/hello'</span> <span style="color: #000000">},</span></div>
<div> response<span style="color: #000000">:</span> <span style="color: #000000">{</span> statusCode<span style="color: #000000">:</span> <span style="color: #0086b3">200</span> <span style="color: #000000">}</span></div>
<div> <span style="color: #000000">});</span></div>
<div> <span style="color: #000000">});</span></div>
<div><span style="color: #000000">});</span></div>
</div><p>For test frameworks that only supports a done-callback, we provide a
wrapper function:</p>
<div class="code lang-javascript">
<div><span style="color: #000000">describe</span><span style="color: #000000">(</span><span style="color: #df5000">'asynchronous testing'</span><span style="color: #000000">,</span> <span style="color: #a71d5d">function</span> <span style="color: #000000">()</span> <span style="color: #000000">{</span></div>
<div> <span style="color: #000000">it</span><span style="color: #000000">(</span><span style="color: #df5000">'should be fun'</span><span style="color: #000000">,</span> expect<span style="color: #000000">.</span><span style="color: #000000">async</span><span style="color: #000000">(</span><span style="color: #a71d5d">function</span> <span style="color: #000000">()</span> <span style="color: #000000">{</span></div>
<div> <span style="color: #a71d5d">return</span> <span style="color: #000000">expect</span><span style="color: #000000">(</span>middleware<span style="color: #000000">,</span> <span style="color: #df5000">'to yield exchange'</span><span style="color: #000000">,</span> <span style="color: #000000">{</span></div>
<div> request<span style="color: #000000">:</span> <span style="color: #000000">{</span> url<span style="color: #000000">:</span> <span style="color: #df5000">'/hello'</span> <span style="color: #000000">},</span></div>
<div> response<span style="color: #000000">:</span> <span style="color: #000000">{</span> statusCode<span style="color: #000000">:</span> <span style="color: #0086b3">200</span> <span style="color: #000000">}</span></div>
<div> <span style="color: #000000">});</span></div>
<div> <span style="color: #000000">}));</span></div>
<div><span style="color: #000000">});</span></div>
</div>
</div>
</div>
</section>
<script type="text/javascript">
baseUrl = '../..';
</script>
<script type="text/javascript" src="../../static/toggleSidebar.js"></script>
<script type="text/javascript" src="../../static/rememberScrollPosition.js"></script>
<script type="text/javascript" src="../../static/focusMain.js"></script>
<script type="text/javascript" src="../../static/search.js"></script>
</body>
</html>