Я пишу тестовый класс 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));
Может быть проблема в ваших matchers: 'PowerMockito.when (RequestXmlBuilder.serviceMarshall (any (Request.class), any (Jaxb2Marshaller.class))) thenReturn ("XmlTest"); 'Обратите внимание на' import static org.mockito.Matchers.any; 'Не могли бы вы попробовать? – troig
Его вокальный штраф. Спасибо вам большое @troig – Mohan
Ваш прием, я отправил его в качестве ответа. Рад помочь вам! – troig