#java #unit-testing #junit
#java #модульное тестирование #юнит
Вопрос:
Как написать тестовый пример JUnit для следующего кода?
public static boolean validEmail(String emailAddress) {
String EMAIL = "^[_A-Za-z0-9-] (\.[_A-Za-z0-9-] )*@[A-Za-z0-9-] (\.[A-Za-z0-9-] )*(\.[A-Za-z]{2,})$";
if (emailAddress.trim().matches(EMAIL)) {
return true;
} else {
return false;
}
}
Комментарии:
1. Вы что-нибудь пробовали? Есть какие-нибудь сомнения по поводу чего-нибудь?
2. Я бы попробовал это так.
3. Также:
return emailAddress.trim().matches(EMAIL);
.
Ответ №1:
Используя JUnit 5, я бы рекомендовал это:
@ParameterizedTest
@CsvSource({"true, tester@mail.test", "false, unknown", "false, A@A"})
void testIsValidEmail(boolean expected, String email) {
assertEquals(expected, YourClass.validEmail(email));
}
Но вы должны приложить некоторые усилия к дополнительным параметрам теста. Вы можете прочитать о разделении эквивалентности и анализе граничных значений здесь https://www.istqb.org/downloads/send/51-ctfl2018/208-ctfl-2018-syllabus.html
Комментарии:
1. Спасибо, Йенс Дибберн. Ценю вашу помощь.
2. Добро пожаловать. Не могли бы вы принять ответ? Это стандартная процедура в SO, если ответ работает для вас.