Вы можете прочитать о каждой части URL-адреса в Wikipedia . Вы найдете там, что http
является именем протокола, :9090
определяет, что соединение должно быть установлено на порту # 9090 и т. Д.
JUnit 4 имеет поддержку этого:
@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
ArrayList emptyList = new ArrayList();
Object o = emptyList.get(0);
}
JUnit имеет встроенную поддержку этого, с "ожидаемый" атрибут
Будьте осторожным ожидаемым исключением использования, потому что оно только утверждает, что метод выдал то исключение, не конкретная строка кода в тесте.
я склонен использовать это для тестирования проверки параметра, потому что такие методы являются обычно очень простыми, но более сложными тестами, мог бы лучше быть подан с:
try {
methodThatShouldThrow();
fail( "My method didn't throw when I expected it to" );
} catch (MyException expectedException) {
}
Применяют решение.
Как насчет этого: Поймайте очень общее исключение, удостоверьтесь, что оно делает его из блока выгоды, затем утверждайте, что класс исключения - то, чем Вы ожидаете, что он будет. Это утверждает, перестанет работать если a) исключение имеет неправильный тип (например, если Вы получили Нулевого указателя вместо этого), и b) исключение никогда не выдавалось.
public void testFooThrowsIndexOutOfBoundsException() {
Throwable e = null;
try {
foo.doStuff();
} catch (Throwable ex) {
e = ex;
}
assertTrue(e instanceof IndexOutOfBoundsException);
}
Редактировать Теперь, когда вышел JUnit5, лучшим вариантом будет использование Assertions.assertThrows()
(см. мой другой ответ).
Если вы не перешли на JUnit 5, но можете использовать JUnit 4.7, вы можете использовать ExpectedException
Rule:
public class FooTest {
@Rule
public final ExpectedException exception = ExpectedException.none();
@Test
public void doStuffThrowsIndexOutOfBoundsException() {
Foo foo = new Foo();
exception.expect(IndexOutOfBoundsException.class);
foo.doStuff();
}
}
Это намного лучше, чем @Test(expected=IndexOutOfBoundsException. class)
, потому что тест будет провален, если IndexOutOfBoundsException
будет выброшен до foo.doStuff()
Подробности смотрите в этой статье
.