Validering av användarnamn
Du skriver registreringsformuläret för din webbplats och arbetar just nu med valideringen av användarnamn. Det är en boolsk sant/falskt-metod, men den har många grenar och du vill säkerställa att alla kan nås och att de beter sig som förväntat.
För att verifiera metoden fullt ut behöver du skriva flera tester – ett för varje typ av scenario. Lyckligtvis är det inte nämnvärt komplicerat.
De nödvändiga JUnit-paketen har redan importerats åt dig.
Den här övningen är en del av kursen
Introduktion till testning i Java
Övningsinstruktioner
- Ange ett användarnamn som är för kort (färre än 3 tecken) och som inte klarar valideringen i det test som kontrollerar längden på användarnamnet.
- Skicka
usernametill metoden.isValidUsername()och lagra resultatet. - Bekräfta med ett påstående att
null-fallet misslyckas med valideringen av användarnamnet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)
}
}