2012-04-22 4 views
0

У меня есть метод: doctorQueue, который получает три параметра: тип данных (по java.util.Date), время и идентификатор (строка).Java-Junit/непонимание метода Junit

Возвращаемое значение равно void, и если есть уже очередь в одно и то же время, это дает освобождение.

Я написал следующий метод, с помощью JUnit:

public void checkQueueDoctor(){ 
Date date = new Date (2012,4,25); 
Time time = new Time (13, 0, 0); 
assertTrue(doctorQueue("83849829", date, time)); 
..... // and so on 
} 

Это дает мне следующую задачу: The method assertTrue(boolean) in the type Assert is not applicable for the arguments (void).

Я, конечно, понял это, но как я могу проверить функцию, что она возвращает значение пусто?

ответ

1
public void checkQueueDoctor(){ 
    Date date = new Date (2012,4,25); 
    Time time = new Time (13, 0, 0); 
    doctorQueue("83849829", date, time); 
    ..... // and so on 
} 

достаточно. Если возникает исключение, тест автоматически завершится ошибкой.

0

Проверьте, что очередь изменилась после того, как вы добавили врача.

0

Как я могу проверить функцию, что она возвращает значение пусто?

Вы не можете. Вы можете только проверить, выбрасывает ли это исключение, когда оно должно было быть выброшено, например, плохие аргументы и т.д., и быть информированными через Assert.fail()
Что вы могли бы сделать, это создать метод обертки, который проверяет побочные эффекты этого метода и вернуть true или false и называют, что из утверждают

1

Если вы хотите проверить что исключение не брошено методом пустот, общая картина:

try { 
    doctorQueue("83849829", date, time); 
    // if we make it to this line, success! 
} catch (Exception e) { 
    fail("queue adding threw an exception"); 
} 

Если у вас есть другая ситуация, в которой вы хотите проверить, что метод делает сгенерирует исключение, просто переместить вызов не в состоянии другой блок:

try { 
    doctorQueue(alreadyPresentElement, date, time); 
    fail("expected an exception but didn't get one!");  
} catch (Exception e) { 
    // we expected an exception and got it! Success! 
} 

(В любом случае это, вероятно, лучше, чтобы поймать более конкретное исключение, чем просто Exception, кстати.)

+1

Если вы хотите проверить, что исключение не брошенная метод, просто вызовите метод. Вызывая метод try ... catch, вы скрываете исходное исключение – NamshubWriter

1

Если вы используете JUnit 4, вы можете проверить на ожидаемое исключение, например:

@Test(expected = Exception.class) 
public void checkQueueDoctor() throws Exception { 
    Date date = new Date (2012,4,25); 
    Time time = new Time (13, 0, 0); 
    doctorQueue("83849829", date, time); 
} 

Вы можете посмотреть на этом link

+1

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

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