1

Ich führe zuerst einen Mocked-Login-Test aus, der Statuscode 400 zurückgibt, gefolgt von einem zweiten Test, der sich unter Verwendung eines echten Serviceanrufs anmeldet. Die Tests sind unten:Sie können Anrufe für echte Server nicht testen, nachdem Sie mockwebserver auf Android verspottet haben?

@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); 
} 

Der echte Dienst wird nicht aufgerufen. Die Meldung EditText Fehler sagt

Authentifizierung nicht möglich:/verbinden konnte nicht localhost 127.0.0.1: 50162

Hier ist die NetworkServiceHelper.init() Funktion, die Retrofit-Instanz initialisiert:

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(); 
} 

Antwort

0

stellen Sie sicher, dass Sie faul die Aktivität aufzurufen, wie Art und Weise

@Rule 
    public ActivityTestRule<EmergencyMainActivity> mActivityTestRule = 
      new ActivityTestRule<>(EmergencyMainActivity.class, true, false); 
folgende

und rufen Sie dann die Aktivität auf, nachdem der Server-Netzwerkaufruf eingerichtet wurde.

Verwandte Themen