Skip to content

Commit ebf6b72

Browse files
committed
deploy: d398ac4
1 parent 96d2e20 commit ebf6b72

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed

Components/04-wiremock/index.html

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,21 @@
495495
</span>
496496
</a>
497497

498+
<nav class="md-nav" aria-label="Mocking">
499+
<ul class="md-nav__list">
500+
501+
<li class="md-nav__item">
502+
<a href="#behavioural-mocking" class="md-nav__link">
503+
<span class="md-ellipsis">
504+
Behavioural Mocking
505+
</span>
506+
</a>
507+
508+
</li>
509+
510+
</ul>
511+
</nav>
512+
498513
</li>
499514

500515
</ul>
@@ -747,6 +762,40 @@ <h2 id="mocking">Mocking<a class="headerlink" href="#mocking" title="Permanent l
747762
</code></pre></div>
748763
<p>Relative url is mocked. BaseUrl is known by Wiremock server since it hosts it, and your application because you passed
749764
it as a command line argument.</p>
765+
<h3 id="behavioural-mocking">Behavioural Mocking<a class="headerlink" href="#behavioural-mocking" title="Permanent link">&para;</a></h3>
766+
<p>Sometimes, a service call returns a failure response before a success response. You can define this behaviour with
767+
behavioural mocking.</p>
768+
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="n">test</span><span class="p">(</span><span class="s">&quot;behavioural tests&quot;</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
769+
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">expectedGetDtoName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">UUID</span><span class="p">.</span><span class="na">randomUUID</span><span class="p">().</span><span class="na">toString</span><span class="p">()</span>
770+
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="n">TestSystem</span><span class="p">.</span><span class="na">validate</span><span class="w"> </span><span class="p">{</span>
771+
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="n">wiremock</span><span class="w"> </span><span class="p">{</span>
772+
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="n">behaviourFor</span><span class="p">(</span><span class="s">&quot;/get-behaviour&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">WireMock</span><span class="o">::</span><span class="k">get</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
773+
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="w"> </span><span class="n">initially</span><span class="w"> </span><span class="p">{</span>
774+
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="n">aResponse</span><span class="p">()</span>
775+
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="w"> </span><span class="p">.</span><span class="na">withStatus</span><span class="p">(</span><span class="m">503</span><span class="p">)</span>
776+
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="w"> </span><span class="p">.</span><span class="na">withBody</span><span class="p">(</span><span class="s">&quot;Service unavailable&quot;</span><span class="p">)</span>
777+
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="w"> </span><span class="p">}</span>
778+
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="w"> </span><span class="n">then</span><span class="w"> </span><span class="p">{</span>
779+
<a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a><span class="w"> </span><span class="n">aResponse</span><span class="p">()</span>
780+
<a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a><span class="w"> </span><span class="p">.</span><span class="na">withHeader</span><span class="p">(</span><span class="s">&quot;Content-Type&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;application/json&quot;</span><span class="p">)</span>
781+
<a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a><span class="w"> </span><span class="p">.</span><span class="na">withStatus</span><span class="p">(</span><span class="m">200</span><span class="p">)</span>
782+
<a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a><span class="w"> </span><span class="p">.</span><span class="na">withBody</span><span class="p">(</span><span class="nb">it</span><span class="p">.</span><span class="na">serialize</span><span class="p">(</span><span class="n">TestDto</span><span class="p">(</span><span class="n">expectedGetDtoName</span><span class="p">)))</span>
783+
<a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a><span class="w"> </span><span class="p">}</span>
784+
<a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a><span class="w"> </span><span class="p">}</span>
785+
<a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a><span class="w"> </span><span class="p">}</span>
786+
<a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a><span class="w"> </span><span class="n">http</span><span class="w"> </span><span class="p">{</span>
787+
<a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">getResponse</span><span class="p">(</span><span class="s">&quot;/get-behaviour&quot;</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">actual</span><span class="w"> </span><span class="o">-&gt;</span>
788+
<a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a><span class="w"> </span><span class="n">actual</span><span class="p">.</span><span class="na">status</span><span class="w"> </span><span class="n">shouldBe</span><span class="w"> </span><span class="m">503</span>
789+
<a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a><span class="w"> </span><span class="p">}</span>
790+
<a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a><span class="w"> </span><span class="k">get</span><span class="o">&lt;</span><span class="n">TestDto</span><span class="o">&gt;</span><span class="p">(</span><span class="s">&quot;/get-behaviour&quot;</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">actual</span><span class="w"> </span><span class="o">-&gt;</span>
791+
<a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a><span class="w"> </span><span class="n">actual</span><span class="p">.</span><span class="na">name</span><span class="w"> </span><span class="n">shouldBe</span><span class="w"> </span><span class="n">expectedGetDtoName</span>
792+
<a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a><span class="w"> </span><span class="p">}</span>
793+
<a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a><span class="w"> </span><span class="p">}</span>
794+
<a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a><span class="w"> </span><span class="p">}</span>
795+
<a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a><span class="p">}</span>
796+
</code></pre></div>
797+
<p>Here we define a behaviour for the <code>/get-behaviour</code> endpoint. Initially, it returns a 503 status code with a message.
798+
Then, it returns a 200 status code with a <code>TestDto</code> object.</p>
750799

751800

752801

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

sitemap.xml.gz

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)