2017-01-17 11 views
0

Sample ControllerДобавление класса, для которого Junit написано в @PrepareForTest делает нулевой охват в гидролокатора

public class SampleController { 

    public void sampleMethod() { 
    ClassAbc classAbc = new ClassAbc(); 
    classAbc.abcMethod(); 
    //doStuff 
    } 
} 

ClassAbc

public class ClassAbc { 
    public void abcMethod() { 
    //doStuff 
    } 
} 

Junit для SampleController

@RunWith(PowerMockRunner.class) 
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class) 
@PrepareForTest({SampleController.class}) 
public class SampleControllerTest { 

    @Autowired 
    SampleController sampleController; 

    public void setUp() { 
     ClassAbc classAbc = PowerMockito.mock(ClassAbc.class); 
     PowerMockito.whenNew(ClassAbc.class).withAnyArguments()                           
              .thenReturn(classAbc); 
     doNothing().when(classAbc).abcMethod(); 
    } 

    @Test 
    public void testsampleMethod() throws Exception { 
     sampleController.sampleMethod(); 
    } 
} 

Когда Иам добавления «SampleController.class» в @PrepareForTest, то есть:

@PrepareForTest({SampleController.class}) 

Iam, получивший следующее нарушение, когда выполняю работу сонара.

14 more branches need to be covered by unit tests to reach the minimum threshold of 65.0% branch coverage. 

То есть я получаю нулевое покрытие для этого класса.

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

Или может кто-нибудь найти решение, чтобы исправить это нарушение сонара. Заранее спасибо

+0

См. Это http://stackoverflow.com/questions/27925401/powermockito-disables-sonar-branch-coverage –

+0

Но он требует больше информации о статических и конечных методах. И hrer у меня нет никаких статических методов – Maria

ответ

0

Как указано в PowerMockito wiki:

... сейчас нет никакого способа ИСПОЛЬЗОВАТЬ PowerMock с JaCoCo На лету приборов. ... получить код покрытия с помощью JaCoCo - использовать автономный инструмент ... Вы можете найти пример использования PowerMock с автономным прибором JaCoCo и Maven в нашем репозитории: jacoco-offline example.