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.