因此,我试图使用mockito来模拟getMethod请求/响应。但是我遇到了一些问题
@Mock
private HttpClient client;
private GetMethod method;
@InjectMocks
private WebserviceInterface webserviceInterface;
@Before
public void setUp() throws Exception {
initMocks(this);
setting up the a valid customer happens here
}
@Test
public void shouldReturnValidCustomerWithValidBarcode() throws Exception {
// TODO: Mock out the ParcelService so that we can specify what JSON data is returned.
// TODO: Create the Customer object that we expect
// TODO: Call the method of module under test
// TODO: assertThat(expected, is(theActualObject)
when(client.executeMethod(any(HttpMethod.class))).thenReturn(200);
String aValidCustomerJson = "JsonGoes Here";
when(method.getResponseBodyAsString()).thenReturn(aValidCustomerJson);
assertThat(webserviceInterface.parcelSearch("aValidBarcode"), is(aValidCustomer));
}但是im得到一个空指针异常,我不知道为什么:
java.lang.NullPointerException at com.springapp.mvc.WebserviceInterfaceTest.shouldReturnValidCustomerWithValidBarcode(WebserviceInterfaceTest.java:137)如果有任何帮助的话,谢谢
发布于 2015-07-26 13:49:12
一般来说,不建议模拟外部库,因为您的测试代码将依赖于它们。最好创建一个删减层并对其进行模拟。在这种情况下,您可以将HttpClient包装在类中,这样就可以轻松地对其方法进行存根处理。
https://stackoverflow.com/questions/31609412
复制相似问题