を呼び出して、私はHttpClientををからかっていますが、私はテストクラスを実行するときには、ライン嘲笑のHttpClient実際の方法私のテストクラスで
final HttpResponse response = httpClient.execute(postRequest);
の代わりにモックの実際のメソッドを呼び出して、私はjava.lang.IllegalStateExceptionを与えます。ここで
は私のコードfinal HttpClient httpClient = new DefaultHttpClient();
final HttpPost postRequest = new HttpPost(someURL);
final String inputJson = mapper.writeValueAsString(someObj);
final StringEntity input = new StringEntity(inputJson);
input.setContentType("application/json");
postRequest.setEntity(input);
final HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
}
final BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
であり、ここでは私のテストクラスコード
public class XGenericServiceTest {
@InjectMocks
private XGenericService xGenericService = new XGenericService();
@Mock
HttpClient httpClient;
@Mock
HttpResponse httpResponse;
@Mock
HttpEntity httpEntity;
@Mock
StatusLine statusLine;
@Mock
HttpPost httpPost;
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testgetXClient(){
try {
String s = "[{\"firstName\":\"adasd\"}]";
when(httpClient.execute(Mockito.isA(HttpPost.class))).thenReturn(httpResponse);
when(httpResponse.getStatusLine()).thenReturn(statusLine);
when(statusLine.getStatusCode()).thenReturn(HttpStatus.SC_OK);
when(httpEntity.getContent()).thenReturn(new ByteArrayInputStream(s.getBytes()));
when(httpResponse.getEntity()).thenReturn(httpEntity);
List<MdmClient> results = xGenericService.getXClient("userId", "surname", "givenName", "postalCode", "availableId", "phoneNumber", "organizationName", "otherKey");
} catch (Exception e) {
e.printStackTrace();
}
}
}
が、私は次の例外に
java.lang.IllegalStateException: Target host must not be null, or set in parameters.
at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:784)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:414)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
at au.com.allianz.omnia.service.SafireGenericService.getSafireClient(SafireGenericService.java:87)
at au.com.allianz.omnia.service.SafireGenericServiceTest.testgetSafireClient(SafireGenericServiceTest.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:613)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
缶誰でもポイントを取得しています私はやった上記のコードに間違っていますか?コードスニペットから