1
나는 진짜 서비스 호출을 사용하여 로그인하는 두 번째 테스트 다음에 상태 코드 400을 반환하는 조롱 된 로그인 테스트를 먼저 실행하고 있습니다. 테스트는 다음과 같습니다.Android에서 mockwebserver를 조롱 한 후 실제 서버에 대한 호출을 테스트 할 수 없습니까?
@Test
public void mock() throws IOException, InterruptedException {
MockWebServer server = new MockWebServer();
server.enqueue(new MockResponse().setResponseCode(400));
server.start();
NetworkServiceHelper.init(String.valueOf(server.url("/"))); // Change retrofit baseUrl to localhost
loginWithoutWaiting(username, password);
server.shutdown();
}
@Test
public void real() {
NetworkServiceHelper.init(NetworkServiceHelper.DEFAULT_URL); // Change retrofit baseUrl to a real url
loginWithoutWaiting(username, password);
}
실제 서비스가 호출되지 않습니다. 글고 오류 메시지가
가 인증 할 수 없습니다 말한다 : localhost에 연결하지 못했습니다/127.0.0.1 :
: 50162 여기에public static synchronized void init(String serverUrl) { // Override the GSON date format. Gson gson = new GsonBuilder() .setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ") .create(); // We want to make the network calls asynchronous, so use createWithScheduler() RxJavaCallAdapterFactory rxAdapter = RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io()); // Finally, build the Retrofit client. retrofit = new Retrofit.Builder() .baseUrl(serverUrl) .addConverterFactory(GsonConverterFactory.create(gson)) .addCallAdapterFactory(rxAdapter) .client(buildClient()) .build(); }
는 개조 인스턴스를 초기화 NetworkServiceHelper.init() 함수