Asserções de teste de seqüência de caracteres não vazias em Java

Asserções de teste de seqüência de caracteres não vazias em Java

1. Visão geral

Em certos cenários, precisamos afirmar se um determinadoString está vazio ou não. Existem várias maneiras de fazer essas afirmações em Java.

Let’s explore some of those test assertion techniques neste tutorial rápido.

2. Dependências do Maven

Primeiro precisamos pegar algumas dependências. Em um projeto Maven, podemos adicionar as seguintes dependências aopom.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. Usando 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. Como o métodoisEmpty retorna verdadeiro se a entradaString estiver vazia, podemos usá-lo junto com o métodoassertFalse:

assertFalse(text.isEmpty());

Ou também podemos usar:

assertTrue(!text.isEmpty());

Thought since text might be null, outra maneira é fazer uma verificação de igualdade usando o métodoassertNotEquals:

assertNotEquals("", text);

Or:

assertNotSame("", text);

Confira nosso guia detalhado sobre asserções JUnithere.

Todas essas asserções, quando falharem, retornarão umAssertionError.

4. Usando Hamcrest Core

Hamcrest é uma estrutura bem conhecida que fornece correspondências que são comumente usadas para testes de unidade no ecossistema Java.

We can make use of the Hamcrest CoreMatchers class for empty String checking:

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

O métodoisEmptyString está disponível na classeIsEmptyString.

Isso também retorna um AssertionError ao falhar, mas com uma saída mais útil:

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

Se necessário, para verificar se uma String não está vazia nem nula, podemos usar oisEmptyOrNullString:

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

Para aprender sobre outros métodos da classeCoreMatchers, leia o artigothis publicado anteriormente.

5. Usando Apache Commons Lang

A bibliotecaApache Commons Lang fornece um host de utilitários auxiliares para a APIjava.lang.

OStringUtils class offers a method that we can use to check for empty Strings:

assertTrue(StringUtils.isNotBlank(text));

Ao falhar, retorna umAssertionError. simples

Para saber mais sobre o processamento de String com Apache Commons Lang, leia o artigothis.

6. Usando AssertJ

AssertJ é um software livre, uma biblioteca dirigida pela comunidade usada para escrever asserções ricas e fluentes em testes Java.

O métodoAbstractCharSequenceAssert.isNotEmpty() verifica se oCharSequence real não está vazio, ouin other words, that it is not null and has a length of 1 or more:

Assertions.assertThat(text).isNotEmpty()

Ao falhar, isso imprime a saída:

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

Temos um bom artigo introdutório sobre AssertJhere.

7. Usando o Google Guava

Guava é um conjunto de bibliotecas básicas oferecidas pelo Google.

The method isNullOrEmpty from the Guava Strings class can be utilized to verify if a String is empty (ou nulo):

assertFalse(Strings.isNullOrEmpty(text));

Isso também retorna umAssertionError ao falhar sem outra mensagem de saída.

Para explorar nossos outros artigos sobre a API Guava, siga o linkhere.

8. Conclusão

Neste tutorial rápido, descobrimos como afirmar se um determinadoString está vazio ou não.

Como sempre, o trecho de código completo está disponível emover on GitHub.