Улучшение проверки наличия подстроки в jUnit: более кратко

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для проверки, содержится ли подстрока в строке, можно воспользоваться assertTrue и методом String's contains. Применим на практике:

Java
Скопировать код
import static org.junit.Assert.assertTrue;

assertTrue("Подстрока не найдена. Возможно, вы ошиблись?", 
           "Проверяемая строка".contains("Искомая подстрока"));

В случае успеха, если "Проверяемая строка" действительно содержит в себе "Искомая подстрока", тест пройдет. Если нет – появится сообщение об ошибке.

Кинга Идем в IT: пошаговый план для смены профессии

Соответствия Hamcrest: Алхимия JUnit

Пайперы мира JUnit объединены в общество под названием Hamcrest. Их специализация – создание соответствий (matchers), которые упрощают и облагораживают процесс написания тестов.

Java
Скопировать код
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;

assertThat("Проверяемая строка", containsString("Искомая подстрока"));

С помощью статических импортов, мы держим наш код аккуратным, а экран – свободным от хаоса.

AssertJ Magic: Эстетика кода в ваших руках

Если Вам близок более изящный стиль, AssertJ станет вашим постоянным союзником:

Java
Скопировать код
import static org.assertj.core.api.Assertions.assertThat;

assertThat("Проверяемая строка").contains("Искомая подстрока");

Библиотека AssertJ знаменита своей читабельностью и понятностю API, обернув утверждения сложнейшим искусством.

Настраиваемые Сообщения об Ошибках: Инструменты Отладки

В случае неудачи теста, без дополнительной информации вы рискуете оказаться как моряк в шторм. В этом вам помогут сообщения ошибок, дополненные подробностями:

Java
Скопировать код
import static org.junit.Assert.assertTrue;

assertTrue("Ожидалось нахождение подстроки 'Искомая подстрока' в строке 'Проверяемая строка'. Ошибка не там, где думали!", 
           "Проверяемая строка".contains("Искомая подстрока"));

Такое сообщение позволит вам быстро оценить ситуацию и вернуться к отладке вашего кода.

Визуализация

Вашей строки можно представить как карту сокровищ (💎), где подстрока — это ключ к богатству:

Markdown
Скопировать код
Ваша Строка (📜): "Здесь глубоко в земле спрятано сокровище"
Ваша Подстрока (💎): "сокровище"

assertContains: Ваш археологический инструмент

Markdown
Скопировать код
🔍 Содержится ли слово "сокровище" в строке? 

| Ищем treasure с помощью assertContains |
| ------------------------------- |
| 📜📍💎: Успех!                 |

Функция утверждения быстро обнаруживает СОКРОВИЩЕ (подстроку), спрятанное в КАРТЕ (строке), работая как надёжная лопата при поисках. 🗺️💡

Изучение Других Библиотек: Путешественник в коде

Всегда стоит обратить внимание на другие замечательные библиотеки для тестирования, включая fest-assert-2.x и assertj. Они расширяют ваши возможности в тестировании:

Java
Скопировать код
// Используем Fest Assert:
import static org.fest.assertions.Assertions.assertThat;

assertThat("Проверяемая строка").contains("Искомая подстрока");
// "Искомая подстрока" найдена — добываем золото!

// Воспользуемся AssertJ для коллекций:
import static org.assertj.core.api.Assertions.assertThat;

assertThat(списокСтрок).contains("Желаемая строка");
// "Желаемая строка" найдена, как будто нам подсказали!

Эти библиотеки превращают ваши тесты в мощное судно, готовое к долгому путешествию по коду.

Лучшие Практики: Компас для поддержки кода

Путешествие по карте кода невозможно без компаса. Вот несколько советов, которые помогут улучшить поддержку вашего кода:

  • Работайте с понятными именами переменных. "myStr" не говорит нам о том, что содержит переменная.
  • Используйте одно конкретное утверждение в каждом тесте. Избегайте хаоса!
  • В случае, когда типовые утверждения встречаются снова и снова, применяйте параметризованные тесты. Убивайте двух зайцев одним выстрелом!

Следуя этим принципам, тестирование вашего приложения станет надёжным залогом успешности вашего проекта.

Полезные материалы

  1. Руководство пользователя JUnit 5: Навигатор для опытных пользователей мира утверждений JUnit 5.
  2. Assert (JUnit API): Справочник по методам утверждений JUnit4.
  3. IsEqual (Hamcrest): Каталог описаний изысканных соответствий Hamcrest.
  4. StringUtils (Apache Commons Lang 3.14.0 API)): Набор инструментов для работы со строками.
  5. AssertJ – феерия гибких утверждений Java: Сборник хитростей для стильных утверждений AssertJ.
  6. Unit Tests with Mockito – Tutorial: Узнайте об эффективности юнит-тестирования на примере с Mockito.