2015-07-04 3 views
0

Я пишу тестовый класс Junit «ServiceImplTest.java» для следующего метода, но его получение нулевого значения при попытке Marshall xmlRequest. Может кто-нибудь помочь мне решить эту проблему, пожалуйста. Заранее спасибо.Junit - Mocking static method

ServiceImplTest.java

@RunWith(PowerMockRunner.class) 
@PrepareForTest({RequestXmlBuilder.class}) 
public class ServiceImplTest { 
    @Before 
    public void setUp() throws Exception { 
     PowerMockito.mockStatic(RequestXmlBuilder.class); 
    } 

    @Test 
    public void testExecute() throws Exception { 
     PowerMockito.when(RequestXmlBuilder.serviceMarshall(Request, jaxb2Marshaller)).thenReturn("XmlTest"); 
    } 
} 

ServiceImpl.java

public class ServiceImpl { 
    public Response execute() { 
     String xmlRqst = RequestXmlBuilder.serviceMarshall(request, jaxb2Marshaller); 
    } 
} 

RequestXmlBuilder.java

public class RequestXmlBuilder { 
    public static String serviceMarshall(Request request, Jaxb2Marshaller jaxb2Marshaller) 
      throws JAXBException { 
     StringWriter requestXml = new StringWriter(); 
     jaxb2Marshaller.marshal(request, new StreamResult(requestXml)); 
     return requestXml.toString(); 
    } 
} 

Примечание: Получение нулевого значения в поле ниже заявлении

jaxb2Marshaller.marshal(request, new StreamResult(requestXml)); 
+1

Может быть проблема в ваших matchers: 'PowerMockito.when (RequestXmlBuilder.serviceMarshall (any (Request.class), any (Jaxb2Marshaller.class))) thenReturn ("XmlTest"); 'Обратите внимание на' import static org.mockito.Matchers.any; 'Не могли бы вы попробовать? – troig

+0

Его вокальный штраф. Спасибо вам большое @troig – Mohan

+0

Ваш прием, я отправил его в качестве ответа. Рад помочь вам! – troig

ответ

1

Вы не определили свой matchers правильно. Не могли бы вы изменить его:

PowerMockito.when(RequestXmlBuilder.serviceMarshall(any(Request.class), any(Jaxb2Marshaller.class))).thenReturn("XmlTest"); 

Импорт для Mockito любой Сличитель следующим образом:

import static org.mockito.Matchers.any; 

Приветствия