Отсутствующие ветки при использовании assertTrue вместо assertNull

В Java/Junit мне нужно проверять наличие нулей с помощью какого-либо объекта. Есть множество способов проверить условие, но я использую assertTrue для большинства своих тестов. Когда я проверяю наличие нулей в assertTrue, EclEmma заявляет, что тестируется только одна ветвь.

Когда я преобразую оператор в переменную вручную (, например, устанавливаю результат в логическое значение и передаю его в assertTrue ), покрытие кода считается полным в утверждении, но не в строке инициализации переменной.

Почему это происходит? Связано ли это с дополнительным байтовым кодом, который, по-видимому, добавляет Java, как указано в http://sourceforge.net/apps/trac/eclemma/wiki/FilteringOptions? Любые решения (, кроме использования других утверждений ).

assertTrue:

assertTrue( myObject == null ); //1 of 2 branches

assertTrue:

boolean test = (myObject == null); //1 of 2 branches missing
assertTrue(test); // complete

assertNull:

assertNull( myObject ) //complete;

17
задан avandeursen 21 April 2012 в 14:40
поделиться