Тестовые утверждения строки не пустые в Java
1. обзор
В определенных сценариях нам нужно утверждать, является ли данныйString пустым или нет. Есть довольно много способов сделать такие утверждения в Java.
Let’s explore some of those test assertion techniques в этом кратком руководстве.
2. Maven Зависимости
Сначала нужно получить несколько зависимостей. В проекте Maven мы можем добавить следующие зависимости кpom.xml:
junit
junit
4.12
org.hamcrest
hamcrest-core
1.3
org.apache.commons
commons-lang3
3.8
org.assertj
assertj-core
3.11.1
com.google.guava
guava
26.0-jre
3. Использование JUnit
We’ll use the isEmpty method from the String class along with the Assert class from JUnit to verify whether a given String isn’t empty. Поскольку методisEmpty возвращает истину, если вводString пуст, мы можем использовать его вместе с методомassertFalse:
assertFalse(text.isEmpty());
Или мы также можем использовать:
assertTrue(!text.isEmpty());
Thought since text might be null, другой способ - выполнить проверку равенства с помощью методаassertNotEquals:
assertNotEquals("", text);
Or:
assertNotSame("", text);
Ознакомьтесь с нашим подробным руководством по утверждениям JUnithere.
Все эти утверждения в случае неудачи вернутAssertionError.
4. Использование Hamcrest Core
Hamcrest - это хорошо известная среда, предоставляющая сопоставители, которые обычно используются для модульного тестирования в экосистеме Java.
We can make use of the Hamcrest CoreMatchers class for empty String checking:
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, прочтите ранее опубликованную статьюthis.
5. Использование Apache Commons Lang
БиблиотекаApache Commons Lang предоставляет множество вспомогательных утилит для APIjava.lang.
StringUtils class offers a method that we can use to check for empty Strings:
assertTrue(StringUtils.isNotBlank(text));
В случае сбоя это возвращает простойAssertionError.
Чтобы узнать больше об обработке строк с помощью Apache Commons Lang, прочтите статьюthis.
6. Использование AssertJ
AssertJ - это библиотека с открытым исходным кодом, управляемая сообществом, используемая для написания плавных и разнообразных утверждений в тестах Java.
МетодAbstractCharSequenceAssert.isNotEmpty() проверяет, что фактическийCharSequence не пуст, илиin other words, that it is not null and has a length of 1 or more:
Assertions.assertThat(text).isNotEmpty()
В случае неудачи это печатает вывод:
java.lang.AssertionError:
Expecting actual not to be empty
У нас есть хорошая вводная статья об AssertJhere.
7. Использование Google Guava
Guava - это набор основных библиотек, предлагаемых Google.
The method isNullOrEmpty from the Guava Strings class can be utilized to verify if a String is empty (или ноль):
assertFalse(Strings.isNullOrEmpty(text));
Это также возвращаетAssertionError при сбое без другого выходного сообщения.
Чтобы ознакомиться с другими нашими статьями о Guava API, перейдите по ссылкеhere.
8. Заключение
В этом кратком руководстве мы узнали, как утверждать, является ли данныйString пустым или нет.
Как всегда, полный фрагмент кода доступен вover on GitHub.