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

Тестовые утверждения строки не пустые в 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.