Validação de nome de usuário
Você está criando o formulário de cadastro do seu site e, no momento, trabalhando na validação do nome de usuário. É um método booleano de verdadeiro/falso, mas ele tem muitos ramos e você quer garantir que todos possam ser alcançados e se comportem como esperado.
Para verificar totalmente esse método, você precisa escrever vários testes, um para cada tipo de cenário. Felizmente, isso não é muito complicado.
Os pacotes necessários do JUnit já foram importados para você.
Este exercicio faz parte do curso
Introdução a Testes em Java
Instruções do exercicio
- Informe um nome de usuário curto demais (menos de 3 caracteres) que falhará na validação no teste que verifica a checagem de comprimento do nome de usuário.
- Passe o
usernamepara o método.isValidUsername()e armazene o resultado. - Faça a asserção de que o caso
nullfalha na validação do nome de usuário.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
public class Main {
public static void main(String[] args) {
launchTestsAndPrint(UsernameValidatorTest.class);
}
}
class UsernameValidator {
public static boolean isValidUsername(String username) {
return username != null && !username.isEmpty() && !username.contains(" ") && username.length() >= 3;
}
}
class UsernameValidatorTest {
@Test
void isValidUsername_returnsTrue_whenValidUsername() {
String username = "john_doe";
boolean actual = UsernameValidator.isValidUsername(username);
assertTrue(actual);
}
@Test
void isValidUsername_returnsFalse_whenSpaces() {
String username = "john doe";
boolean actual = UsernameValidator.isValidUsername(username);
assertFalse(actual);
}
@Test
void isValidUsername_returnsFalse_whenShortUsername() {
// Enter a username that is too short
String username = "____";
boolean actual = UsernameValidator.isValidUsername(username);
assertFalse(actual);
}
@Test
void isValidUsername_returnsFalse_whenNull() {
String username = null;
// Pass the username to isValidUsername
boolean actual = UsernameValidator.____(____);
// Verify the username is invalid
____(actual)
}
}