Проблема покрытия кода JUnit4 с ожидаемым исключениемJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема покрытия кода JUnit4 с ожидаемым исключением

Сообщение Anonymous »

У меня есть следующий пример класса на Java:

Код: Выделить всё

package main;

public class SampleClass {
private String id;

public SampleClass(String id) throws IllegalArgumentException {
validation(id);
this.id = id;
}

public void validation(String inputId) throws IllegalArgumentException {
if (inputId.length() != 6) {
throw new IllegalArgumentException("Invalid length");
}
}
}

И теперь я пытаюсь протестировать код с помощью тестов JUnit4, например:

Код: Выделить всё

package main;

import org.junit.rules.ExpectedException;

public class Test {

@org.junit.Rule
public ExpectedException thrown = ExpectedException.none();

@org.junit.Test
public void normalTest() {
SampleClass sample = new SampleClass("123456");
}

@org.junit.Test(expected = IllegalArgumentException.class)
public void lengthTestOriginal() {
SampleClass sample = new SampleClass("1234567");
}

@org.junit.Test
public void lengthTestVersion1() {
thrown.expect(IllegalArgumentException.class);
thrown.expectMessage("Invalid length");
SampleClass sample = new SampleClass("12345");
}

@org.junit.Test
public void lengthTestVersion2() {
try {
SampleClass puerto2 = new SampleClass("1234567");
} catch (IllegalArgumentException e) {
org.junit.Assert.assertEquals("Invalid length", e.getMessage());
}
}
}
Однако, когда я запускаю тесты JUnit с покрытием, экземпляры SampleClass(), которые должны генерировать исключение, похоже, не покрываются, как показано на рисунке:
/>
Изображение

Я знаю, что этот инструмент может быть не в состоянии однако, чтобы обнаружить такой код как охваченный, как обсуждалось здесь, есть ли способ написать тесты так, чтобы они отображались как охваченные? Как видите, я попробовал несколько альтернативных способов выполнить один и тот же тест, но все они не уместились в одной строке создания экземпляра.

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-expected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»