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<AssertionError></strong>. Это уже статическая функция расширенной для Kotlin библиотеки<em>Junit5 inline fun <reified T : Throwable> assertThrows(noinline executable: () -> Unit)</em>, благодаря чему выполняется блок и проверяется тип ожидаемого исключения с его возвратом для последующей проверки.</li>
10
<li><strong>assertThrows<AssertionError></strong>. Это уже статическая функция расширенной для Kotlin библиотеки<em>Junit5 inline fun <reified T : Throwable> assertThrows(noinline executable: () -> 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