Перейти к основному содержимому

Строковые непустые тестовые утверждения в Java

· 3 мин. чтения

1. Обзор

В некоторых сценариях нам нужно утверждать, пуста ли данная строка или нет. В Java существует довольно много способов сделать такие утверждения.

Давайте рассмотрим некоторые из этих методов проверки утверждений в этом кратком руководстве.

2. Зависимости Maven

Сначала нам нужно получить несколько зависимостей. В проекте Maven мы можем добавить следующие зависимости к pom.xml :

Юнит :

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>

Ядро Хамкреста :

<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
</dependency>

Язык Apache Commons :

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>

УтвердитьJ :

<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.11.1</version>
</dependency>

Гугл Гуава :

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>

3. Использование JUnit

Мы будем использовать метод isEmpty из класса String вместе с классом Assert из JUnit, чтобы проверить, не пуста ли данная строка . Поскольку метод isEmpty возвращает true, если входная строка пуста, мы можем использовать его вместе с методом assertFalse :

assertFalse(text.isEmpty());

Или мы также можем использовать:

assertTrue(!text.isEmpty());

Поскольку text может быть нулевым, другим способом является проверка на равенство с помощью метода assertNotEquals :

assertNotEquals("", text);

Или же:

assertNotSame("", text);

Ознакомьтесь с нашим подробным руководством по утверждениям JUnit здесь .

Все эти утверждения в случае неудачи вернут AssertionError.

4. Использование ядра Hamcrest

Hamcrest — это хорошо известная платформа, предоставляющая средства сопоставления, которые обычно используются для модульного тестирования в экосистеме Java.

Мы можем использовать класс Hamcrest CoreMatchers для проверки пустой строки :

assertThat(text, CoreMatchers.not(isEmptyString()));

Метод isEmptyString доступен в классе IsEmptyString .

Это также возвращает AssertionError при сбое, но с более полезным выводом:

java.lang.AssertionError: 
Expected: not an empty string
but: was ""

При необходимости, чтобы убедиться, что строка не является ни пустой, ни нулевой, мы можем использовать isEmptyOrNullString :

assertThat(text, CoreMatchers.not(isEmptyOrNullString()));

Чтобы узнать о других методах класса CoreMatchers , прочитайте эту ранее опубликованную статью.

5. Использование Apache Commons Lang

Библиотека Apache Commons Lang предоставляет множество вспомогательных утилит для API java.lang .

Класс StringUtils предлагает метод, который мы можем использовать для проверки пустых строк :

assertTrue(StringUtils.isNotBlank(text));

В случае сбоя это возвращает простой AssertionError.

Чтобы узнать больше об обработке строк с помощью Apache Commons Lang, прочитайте эту статью.

6. Использование AssertJ

AssertJ — это библиотека с открытым исходным кодом, управляемая сообществом, используемая для написания плавных и насыщенных утверждений в тестах Java.

Метод AbstractCharSequenceAssert.isNotEmpty() проверяет, что фактический CharSequence не пуст, или, другими словами, что он не равен null и имеет длину 1 или более :

Assertions.assertThat(text).isNotEmpty()

В случае сбоя это печатает вывод:

java.lang.AssertionError: 
Expecting actual not to be empty

У нас есть хорошая вводная статья по AssertJ здесь .

7. Использование Google Гуавы

Guava — это набор основных библиотек, предлагаемых Google.

Метод isNullOrEmpty из класса Guava Strings можно использовать для проверки того, является ли строка пустой (или нулевой):

assertFalse(Strings.isNullOrEmpty(text));

Это также возвращает AssertionError при сбое без другого выходного сообщения.

Чтобы изучить другие наши статьи об API Guava, перейдите по ссылке здесь .

8. Заключение

В этом кратком руководстве мы узнали, как утверждать, является ли данная строка пустой или нет.

Как всегда, полный фрагмент кода доступен на GitHub .