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>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<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 .