|
495 | 495 | </span> |
496 | 496 | </a> |
497 | 497 |
|
| 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 | + |
498 | 513 | </li> |
499 | 514 |
|
500 | 515 | </ul> |
@@ -747,6 +762,40 @@ <h2 id="mocking">Mocking<a class="headerlink" href="#mocking" title="Permanent l |
747 | 762 | </code></pre></div> |
748 | 763 | <p>Relative url is mocked. BaseUrl is known by Wiremock server since it hosts it, and your application because you passed |
749 | 764 | it as a command line argument.</p> |
| 765 | +<h3 id="behavioural-mocking">Behavioural Mocking<a class="headerlink" href="#behavioural-mocking" title="Permanent link">¶</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">"behavioural tests"</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">"/get-behaviour"</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">"Service unavailable"</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">"Content-Type"</span><span class="p">,</span><span class="w"> </span><span class="s">"application/json"</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">"/get-behaviour"</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">-></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"><</span><span class="n">TestDto</span><span class="o">></span><span class="p">(</span><span class="s">"/get-behaviour"</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">-></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> |
750 | 799 |
|
751 | 800 |
|
752 | 801 |
|
|
0 commit comments