2014-09-06 2 views
0

У меня есть следующий метод, написанный, который получает подстроку из строки с индексом начала и конца. Для индексированных, которые выйдут за пределы, как написать тестовый пример в Junit? Например, если строка является бананом, и метод запускается как getSubstring (3,12), метод будет вызывать ошибку за пределами границ. Как написать тестовый пример, который будет передан при отображении этой ошибки?Как проверить ошибку индекса за пределами границ?

public String getSubstring(int start, int end){ 
     sub = MyString.str.substring(start, end); 
     return sub; 
    } 



@Test 
public void testgetSubstring() { 
    MyString test = new MyString(); 
    String result = test.getSubstring(3,12); 
} 
+0

выбросить ошибку? –

+0

Используйте функцию длины строки –

ответ

2

Есть много способов сделать это в JUnit, но лучший способ заключается в использовании функции ExpectedException. Вы настроили @Rule, который указывает, что ваш тест может вызвать исключение, и вы можете определить, что будет делать это исключение - какой тип он будет иметь, какое сообщение и т. Д.

В верхней части тестового класса, вы хотите что-то вроде

@Rule public ExpectedException exceptionRule = ExpectedException.none(); 

, а затем перед строкой кода, который должен бросить исключение, вы можете написать что-то вроде

exceptionRule.expect(MyException.class); 

Тогда , ваш тест будет успешным, если будет выбрано правильное исключение; но он будет терпеть неудачу, если он достигнет цели без исключения.

См. Javadoc для большего количества ожиданий, которые вы можете установить в правилах ExpectedException.

Смежные вопросы