В 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;