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, вместо создаваемого класса.
Или может кто-нибудь найти решение, чтобы исправить это нарушение сонара. Заранее спасибо
См. Это http://stackoverflow.com/questions/27925401/powermockito-disables-sonar-branch-coverage –
Но он требует больше информации о статических и конечных методах. И hrer у меня нет никаких статических методов – Maria