2017-01-31 16 views
0

Я запускаю этот метод тестирования JUint и во время работы получаю исключение NullPointerException. Как справиться с этим исключением здесь?NullPointerException в JUnit

@Test 
public void testDivision1() { 
    System.out.println("testDivision");` 
    Operation instance = new Operation(100, 2, null); 
    int res = instance.calculate(); 
    assertEquals(50, res); 

} 
+0

Как выглядит 'Operation'? – ppasler

+0

публичный класс Операция { \t частный окончательный int firstOperand; \t частный окончательный int secondOperand; \t частный конечный оператор EnumOp; \t общественной Операции (INT firstOperand, Int secondOperand, EnumOp оператор) { \t \t this.firstOperand = firstOperand; \t \t this.secondOperand = secondOperand; \t \t this.operator = operator; \t} \t общественного ИНТ высчитывает() { \t \t возвращение operator.calculate (firstOperand, secondOperand); \t} } –

+0

Обновите свой вопрос этим кодом. – ppasler

ответ

0

Как вы передаете null для EnumOp operator здесь

Operation instance = new Operation(100, 2, null); 

Я предполагаю, что эта операция не

return operator.calculate(firstOperand, secondOperand); 

Вы должны установить правильный EnumOp для теста.

+0

@Test \t общественного недействительными testDivision1() бросает NullPointerException { \t \t попробовать { \t \t \t System.out.println ("testDivision"); \t \t \t Операция instance = new Операция (100, 2, null); \t \t \t int res = instance.calculate(); \t \t \t assertEquals (50, res); \t \t} catch (NullPointerException e) { \t \t \t System.out.println ("error"); \t \t} \t} –

+0

Можно добавить броски и попробовать, поймать в то же время? –

+0

Возможно, но здесь нет смысла. Вы говорите: «Этот метод бросает NPE, но я все равно его поймаю». Подумайте, что вы хотите проверить? Проверьте, работает ли подразделение правильно? Или если выбрано исключение? – ppasler