0
我正在寫下一個Junit測試類「ServiceImplTest.java」以下方法,但它在獲得null的同時嘗試Marshall xmlRequest。 任何人都可以幫我解決這個問題,請。提前致謝。Junit - 嘲笑靜態方法
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(任何(Request.class),任何(Jaxb2Marshaller.class)))。然後返回(「XmlTest」);'注意'import static org.mockito.Matchers.any;'你可以試試嗎? – troig
它很好。非常感謝你@troig – Mohan
歡迎您,我已將其作爲答案發布。很高興幫助你! – troig