Исключения NullPointerException не генерируются в тесте - PullRequest
0 голосов
/ 09 ноября 2010

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

Я обнаружил, что любые строки, в которые я добавляю новый NullPointerException, не покрываются, несмотря на утверждение в тесте, что одна будет брошена при вызове метода. Я считаю, что эти тесты пройдены!

Пример можно найти ниже:

public static boolean isXMLFile(File f) {

   if(f==null) {
     throw new NullPointerException("isXMLFile: Input File must not be null");
   }
}

Я обнаружил, что я получаю NPE, который хотел, когда я вызываю вышеуказанный код с помощью isXMLFile(null) в моем тесте jUnit, но я не думаю, что он исходит от того, что я думаю!

Мне не хватает чего-то очень фундаментального в исключениях времени выполнения, не так ли?

Ответы [ 3 ]

1 голос
/ 09 ноября 2010

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

При этом вы, вероятно, не хотите создавать исключение нулевого указателя, возможно, вы захотитебросить исключение недопустимого аргумента.

0 голосов
/ 09 ноября 2010

Альтернативный способ отследить происхождение исключений - вручную ввести немного другое сообщение для каждого из них. Вы сможете увидеть их довольно четко с помощью стандартного отладчика.

0 голосов
/ 09 ноября 2010

Я уверен, что если вы используете f в любом месте и f равно нулю, то исключение будет выброшено в любом случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...