2015-09-08 3 views
1

Я проповедовал, чтобы справляться с Исключениями и не прошел тест, если таковые имеются (пример приведен ниже). Но действительно ли это правильный подход? В любом случае тестовый бегун будет выполнять исполнение. Почему мы должны это делать? Ожидание ваших мыслей.Можно ли бросить исключение в Junit?

Пример: Предположим, что Аа() бросает исключение

@Test 
public void exampleExceptionTest(){ 
try{ 
     A.a(); 
     //Assertion 
    } 
catch(Exception e){ 
assert.fail(); 
} 
} 

Если я перепишем выше в,

@Test 
public void exampleExceptionTest()throws Exception{ 
A.a(); 
//Assertion 
} 
+3

дубликат http://stackoverflow.com/questions/16596418/how-to-handle-exceptions-in-junit – DeiAndrei

ответ

2

Там нет причин, чтобы поймать исключение в модульном тесте просто так что вы можете выполнить явно fail(). Тест потерпит неудачу, если неожиданное исключение встречается, так что лучшая практика, чтобы сделать, как в вашем втором фрагменте кода:

@Test 
public void exampleExceptionTest() throws Exception { 
    A.a(); 
    //Assertion 
} 
0

Вы можете использовать expected параметр @Test аннотацию

т.е.

@Test(expected=SomeException.class) 
public void exampleExceptionTest() { 
    A.a(); 
    //Assertion 
}