您好,我正在测试一些验证方法的类,我想知道是否有办法减少重复的代码。
@Test
void testCorrectEmailValidator() {
List<String> correctEmails = Arrays.asList("test@test.com", "test123@test123.com", "test@test.com.in",
"test.test2@test.com", "test.test2.test3@test.com", "TEST.2test@test.com");
for (String email : correctEmails) {
boolean isValid = UserCredentialsValidator.emailValidator(email);
System.out.println("Email is valid: " + email + ": " + isValid);
assertTrue(isValid);
}
}
@Test
void testCorrectUsernameValidator() {
List<String> correctUsernames = Arrays.asList("username", "123username", "username3", "user2name",
"USERNAME", "USERNAME123", "123USERNAME123", "2uSERname33");
for(String username : correctUsernames) {
boolean isValid = UserCredentialsValidator.usernameValidation(username, userList);
System.out.println("Username is valid: " + username + " : " + isValid);
assertTrue(isValid);
}
}
我还有其他字段的验证器,例如用户名等。我考虑实现一个帮助方法,它将接受:已测试的凭据作为字符串、一个列表,但是我遇到了最后一个参数——验证方法的问题,不确定如何传递它。
我想用一些方法来替换这个for循环的代码。
UserCredentialsValidator.usernameValidation(username, userList)
是打字错误吗?为什么它需要两个参数? - Andrew TobilkoassertTrue(isValid)
调用 - 打印语句使用不同的字符串,因此它们并不完全相等)。我不确定重新排列你发布的代码会有多大帮助。 - Thomas