Здравствуйте, Аноним, Вы писали:
А>Добры день не подскажите как JUNIT работает с Exception
А>так правильно писать?
А>
А>@Test public void testCommandLine(){
А> try {
А> engine.setCommand(new String ("RUR 100 20").split(" "));
А> fail();
А> } catch (Exception e) {
А> assertEquals(e.toString(),"java.lang.Exception: Wrong operand");
А> }
А>
Нет. Во-первых в 4м JUnit есть специальная конструкция для проверки ожидаемых исключений (JUnit FAQ рулит =) )
@Test(expected=IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
ArrayList emptyList = new ArrayList();
Object o = emptyList.get(0); // список пустой, получим исключение IndexOutOfBoundsException
}
Вот. А во-вторых НИКОГДА не выкидывай и не catch java.lang.Exception! Это жесть. Делай свои подклассы.
Мало того, что ты таким макаром хватаешь все виды исключений, включая RuntimeException-ы, так к тому же
ты не получаешь толком никакой информации об ошибке, кроме текстового мессаджа.