Validasi nama pengguna
Anda sedang menulis formulir pendaftaran untuk situs web Anda dan saat ini mengerjakan validasi nama pengguna. Ini adalah metode boolean true/false, namun memiliki banyak cabang dan Anda ingin memastikan semuanya dapat dicapai dan akan berperilaku sebagaimana mestinya.
Untuk memverifikasi metode ini secara menyeluruh, Anda perlu menulis beberapa tes, masing-masing untuk setiap jenis skenario. Untungnya, ini tidak terlalu rumit.
Paket JUnit yang diperlukan telah diimpor untuk Anda.
Latihan ini adalah bagian dari kursus
Pengantar Pengujian di Java
Petunjuk latihan
- Masukkan nama pengguna yang terlalu pendek (kurang dari 3 karakter) dan yang akan gagal validasi pada tes yang memverifikasi pemeriksaan panjang nama pengguna.
- Teruskan
usernameke metode.isValidUsername()dan simpan hasilnya. - Tegaskan bahwa kasus
nullgagal dalam validasi nama pengguna.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)
}
}