2015-08-20 4 views
0

Я пытаюсь обмануть объект, но не смог.Не удалось издеваться над защищенной переменной объекта, используя mockito?

Class A { 
protected SomeResponse someRespsoonse; 


public SomeResponse mapping(){ 

someResponse = new SomeResponse(); 

return someResponse ; 
} 
} 

Тогда я должен проверить его следующий класс:

@RunWith(MockitoJUnitRunner.class) 
@PrepareForTest(A.class) 
class ATest{ 
@Mock 
A a = Mocktio.mock(A.class); 
@Mock    
SomeResponse someResponse = Mockito.mock(SomeResponse.class);        

@Test 
testMyResponse{     
someResponse.setErrorInfo("500");     

PowerMockito.whenNew(SomeResponse.class).withNoArguments().thenReturn(someResponse);     
a.mapping();     

// some blah blah    

}}       

Издание является я не в состоянии заполнить объект SomeResponse из тестового класса. Я прошел через Stackoverflow и google. но не мог получить то, что ищу.

ответ

0

Вы используете whenNew() PowerMockito, поэтому смените RunWith Runner на Mockito на PowerMock.

@RunWith(PowerMockRunner.class) 
@PrepareForTest(A.class) 
class ATest{ 
+0

сейчас я не могу выполнить проверку покрытия, хотя тестовые чеки запущены. –

+0

Запуск тестовых примеров Junit с PowerMockRunner или MockitoJunitRunner - это похоже на работу с обычным набором тестов для юнитов или бегуном. Они не имеют никакого отношения к покрытию cobertura. проверьте, как и какой плагин cobertura и конфигурации вы используете. – kswaughs

+0

eclEmma является инструментом покрытия по умолчанию, который поставляется с eclipse –

Смежные вопросы