2013-11-06 6 views
1

Если тест JUnit бросает исключение:Если выбрано исключение, тест будет терпеть неудачу?

public void mytest throws InvalidUsageException 

Означает ли это, что если тест выдает InvalidUsageException тест будет терпеть неудачу?

Если это лучший дизайн, чтобы обернуть исключение в блок try/catch и явно выпустить исключение?

+1

http://stackoverflow.com/questions/1836364/bad-form-for-junit-test-to-throw-exception – Habib

ответ

2

Тест будет терпеть неудачу, если это исключение будет сброшено. Если тест, чтобы увидеть, есть ли определенное исключение брошено, вы должны начать свой тест, как

@Test(expected=InvalidUsageException.class) 
    public void mytest { 
    ... 
    } 
2

Прежде всего, да, ваш тест не удастся.

Во-вторых, я бы не обернул попытку поймать. Если возникает исключение, вы хотите, чтобы это произошло, чтобы вы знали, что произошла ошибка, а не просто ошибка в самом методе.

1

Да, Thes потерпит неудачу. Если вы ожидаете exceptin затем использовать @Test(expect=ExceptionClassName.class

1

Что вы говорите, может быть одним из решений

public void mytest() { 
    try { 
    // your code 
    fail(); 
    } catch (InvalidUsageException e) { 
    // success 
    } 
} 

Более быстрый подход (но я бы не сказал, понятнее)

@Test (expected = Exception.class) 
public void mytest() { 
    // your code 
} 

Больше таких примеров здесь http://www.vogella.com/articles/JUnit/article.html

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