Я измерил покрытие кода с помощью EclEmma. Я ожидал, что тестируются только пакеты с исходным кодом. Удивительно, но тестовые случаи JUnit также измеряются.
public class EmailTest {
public static final String VALID_MAIL = "[email protected]";
public static final String INVALID_MAIL_WITHOUT_AT = "xyzqwe.abc";
@Test
public void shouldCreateValidEmail() {
Email email = null;
try {
email = new Email (VALID_MAIL);
} catch (NotValidEmailException e) {
Assert.fail();
}
Assert.assertEquals("Email: " + VALID_MAIL + " should be correct created", VALID_MAIL, email.getEmail());
}
@Test(expected = NotValidEmailException.class)
public void shouldThrowExceptionWhenMailHasNoAt() throws NotValidEmailException {
new Email (INVALID_MAIL_WITHOUT_AT);
}
Например, у меня есть базовый тестовый пример для проверки регулярных выражений по электронной почте. Покрытие тестами для этого тестового класса «EmailTest» составляет 73%. Тестируемый класс «Электронная почта» покрыт на 100%.
Почему измеряется покрытие кода в тест-кейсах и для чего это нужно?