Я пишу тестовый класс Junit "ServiceImplTest.java" для следующего метода, но он получает значение null при попытке Marshall xmlRequest. Может ли кто-нибудь помочь мне решить эту проблему, пожалуйста. Заранее спасибо.
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));
PowerMockito.when(RequestXmlBuilder.serviceMarshall(any(Request.class), any(Jaxb2Marshaller.class))).thenReturn("XmlTest");
Обратите внимание наimport static org.mockito.Matchers.any;
Не могли бы вы попробовать? - person troig   schedule 09.07.2015