Je suis en train de vérifier si mon API est disponible dans un test unitaire, pour être sûr qu'il répond avec 200.Android Tests locaux vs instrumenté test
Maintenant, mon problème est que je ne suis pas vraiment sûr quand utiliser Local Test et quand je dois utiliser Android Tests d'instrumentation. Je sais que je dois utiliser des tests instrumentés pour tester l'interface utilisateur, mais comment tester le point de terminaison? J'utilise Retrofit2 pour la communication. Et essayé de tester Endpoint de 2 façons avec des tests locaux.
Exemple 1 (synchrone, ne fonctionne pas)
public class EndpointTest {
EndpointApi api;
SimpleInjection simpleInjection;
@Before
public void setUp() {
simpleInjection = new SimpleInjection();
api = simpleInjection.getEndpointApi();
}
@Test
public void endpoint_1_isAvailable() {
Call<ApiResponse> rootCall = api.getRoot();
try {
int reponseCode = rootCall.execute().code();
Assert.assertEquals(200, reponseCode);
} catch (IOException e) {
Assert.fail();
}
}
}
Exemple 2 (asynchrone, ne fonctionne)
public class EndpointTest {
EndpointApi api;
SimpleInjection simpleInjection;
@Before
public void setUp() {
simpleInjection = new SimpleInjection();
api = simpleInjection.getEndpointApi();
}
@Test
public void endpoint_2_isAvailable() {
Call<ApiResponse> rootCall = api.getRoot();
rootCall.enqueue(new Callback<ApiResponse>() {
@Override
public void onResponse(Call<ApiResponse> call, Response<ApiResponse> response) {
Assert.assertEquals(200, response.code());
}
@Override
public void onFailure(Call<ApiResponse> call, Throwable t) {
Assert.fail();
}
});
}
}
Dois-je utiliser Android Instrumentation test pour le mode asynchrone?
vous avez des titres synchrones et asynchrones mélangés, à partir de l'exemple de code 1 semble synchrone tandis que l'exemple 2 semble asynchrone – Bhargav
Oui, c'est vrai. Déjà corrigé. Merci – shadox