HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: тестирование, kotest</p>
1 <p>Теги: тестирование, kotest</p>
2 <p>В Kotest существует обширная библиотека<strong>Assertions and Matchers</strong>. Рассмотрим ее подробнее.</p>
2 <p>В Kotest существует обширная библиотека<strong>Assertions and Matchers</strong>. Рассмотрим ее подробнее.</p>
3 <p>Прежде всего, следует упомянуть зависимость<strong>testImplementation "io.kotest:kotest-assertions-core:$kotestVersion"</strong>, предоставляющую набор<strong>Matcher</strong>-ов, а также<strong>SoftAssertion</strong>и<strong>Assertion</strong>для проверки исключений. Кроме того, существует возможность по расширению и добавлению собственных комплексных Matcher-ов, включая использование уже готовых расширений.</p>
3 <p>Прежде всего, следует упомянуть зависимость<strong>testImplementation "io.kotest:kotest-assertions-core:$kotestVersion"</strong>, предоставляющую набор<strong>Matcher</strong>-ов, а также<strong>SoftAssertion</strong>и<strong>Assertion</strong>для проверки исключений. Кроме того, существует возможность по расширению и добавлению собственных комплексных Matcher-ов, включая использование уже готовых расширений.</p>
4 <p>Итак, приведем пример теста:</p>
4 <p>Итак, приведем пример теста:</p>
5 <p>Теперь немного расширим его, добавив больше проверок:</p>
5 <p>Теперь немного расширим его, добавив больше проверок:</p>
6 <p>Что важно отметить:</p>
6 <p>Что важно отметить:</p>
7 <ol><li><strong>assertSoftly { code }</strong>. Soft Assert из соответствующей библиотеки assertions Kotest служит для выполнения блока кода полностью, плюс произойдет формирование сообщения со всеми существующими ошибками.</li>
7 <ol><li><strong>assertSoftly { code }</strong>. Soft Assert из соответствующей библиотеки assertions Kotest служит для выполнения блока кода полностью, плюс произойдет формирование сообщения со всеми существующими ошибками.</li>
8 <li><strong>response.asClue { }</strong>. Важнейший момент для проверок в тестах. Здесь Scope-функция kotlin<strong>asClue</strong>добавит в сообщение в случае появления ошибки строковое представление всего response-объекта.</li>
8 <li><strong>response.asClue { }</strong>. Важнейший момент для проверок в тестах. Здесь Scope-функция kotlin<strong>asClue</strong>добавит в сообщение в случае появления ошибки строковое представление всего response-объекта.</li>
9 <li><strong>Matchers</strong>. Matcher'ы от Kotest - прекрасная библиотека проверок, успешно покрывающая базовые потребности. Причем<strong>shouldBe</strong>- это infix-версия проверки на равенство, а<strong>shouldBeBlank</strong>- не infix-проверка на пустоту строки (нет аргумента).</li>
9 <li><strong>Matchers</strong>. Matcher'ы от Kotest - прекрасная библиотека проверок, успешно покрывающая базовые потребности. Причем<strong>shouldBe</strong>- это infix-версия проверки на равенство, а<strong>shouldBeBlank</strong>- не infix-проверка на пустоту строки (нет аргумента).</li>
10 <li><strong>assertThrows&lt;AssertionError&gt;</strong>. Это уже статическая функция расширенной для Kotlin библиотеки<em>Junit5 inline fun &lt;reified T : Throwable&gt; assertThrows(noinline executable: () -&gt; Unit)</em>, благодаря чему выполняется блок и проверяется тип ожидаемого исключения с его возвратом для последующей проверки.</li>
10 <li><strong>assertThrows&lt;AssertionError&gt;</strong>. Это уже статическая функция расширенной для Kotlin библиотеки<em>Junit5 inline fun &lt;reified T : Throwable&gt; assertThrows(noinline executable: () -&gt; Unit)</em>, благодаря чему выполняется блок и проверяется тип ожидаемого исключения с его возвратом для последующей проверки.</li>
11 </ol><p><em>Источник: https://habr.com/ru/users/kochetkov-ma/.</em></p>
11 </ol><p><em>Источник: https://habr.com/ru/users/kochetkov-ma/.</em></p>
12  
12