Kotest Assertions и Matchers | OTUS

Kotest Assertions и Matchers

В Kotest существует обширная библиотека Assertions and Matchers. Рассмотрим ее подробнее.

Прежде всего, следует упомянуть зависимость testImplementation "io.kotest:kotest-assertions-core:$kotestVersion", предоставляющую набор Matcher-ов, а также SoftAssertion и Assertion для проверки исключений. Кроме того, существует возможность по расширению и добавлению собственных комплексных Matcher-ов, включая использование уже готовых расширений.

Итак, приведем пример теста:

1-20219-94fe76.png

Теперь немного расширим его, добавив больше проверок:

2-20219-69e214.png

Что важно отметить:

  1. assertSoftly { code }. Soft Assert из соответствующей библиотеки assertions Kotest служит для выполнения блока кода полностью, плюс произойдет формирование сообщения со всеми существующими ошибками.
  2. response.asClue { }. Важнейший момент для проверок в тестах. Здесь Scope-функция kotlin asClue добавит в сообщение в случае появления ошибки строковое представление всего response-объекта.
  3. Matchers. Matcher'ы от Kotest — прекрасная библиотека проверок, успешно покрывающая базовые потребности. Причем shouldBe — это infix-версия проверки на равенство, а shouldBeBlank — не infix-проверка на пустоту строки (нет аргумента).
  4. assertThrows<AssertionError>. Это уже статическая функция расширенной для Kotlin библиотеки Junit5 inline fun <reified T : Throwable> assertThrows(noinline executable: () -> Unit), благодаря чему выполняется блок и проверяется тип ожидаемого исключения с его возвратом для последующей проверки.

74147164_5d300200_4c0b_11ea_92f2_d35226083120_1-20219-349846.png

Источник: https://habr.com/ru/users/kochetkov-ma/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто