Как протестировать следующий код с помощью junit? Приветствуется любое решение

#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, если ответ работает для вас.