J'essaie d'imprimer quelque chose lors de l'exécution du test d'unité locale Android , mais rien ne se passe. Quel est le problème? Comment puis-je le réparer?
J'ai consulté certains documents sur http://developer.Android.com , j'ai constaté que Android Local Unit Test vient de s'exécuter sur la machine virtuelle Java de ma machine, le fichier Android.jar qui est utilisé pour exécuter des tests unitaires ne contient pas de code réel, donc Log.d () n'imprime rien. Si je veux imprimer le journal, comment faire?
Voici mon code, FeedbackModelTest.Java situé dans src/test/main = répertoire.
package com.upward.reader.mvp.model;
import Android.util.Log;
import com.upward.reader.mvp.bean.FeedbackBean;
import com.upward.reader.net.RequestJSONCallback;
import org.junit.Test;
import Java.io.IOException;
import Java.util.HashMap;
import Java.util.Map;
public class FeedbackModelTest {
@Test
public void postFeedback() throws Exception {
final String url = "http://test.guguread.com/interface/app/user/feedback?";
Map<String, String> params = new HashMap<>();
params.put("content", "content");
new FeedbackModel().postFeedback(url, params, new RequestJSONCallback<FeedbackBean>() {
@Override
public void onResponse(FeedbackBean result) throws IOException {
Log.d("TAG", result.toString());
}
@Override
public void onFailure(Exception e) {
e.printStackTrace();
}
});
}
}
Vous devez utiliser la sortie standard, System.out.println("Hello StackOverflow")
au lieu de Log.x()
. Ensuite, vous pouvez voir les informations du journal dans l'onglet Exécuter.
Mise à jour du 16/12/2017 : Si vous ne pouvez pas voir la sortie dans l'onglet Run
, accédez à Android Monitor
tab pour trouver la sortie à la place.
Si vous devez impliquer une certaine forme de code lié à Android dans vos tests (qui est Log.d), vous pouvez utiliser un cadre de test tel que Robolectric qui est conçu pour agir comme le code Android.jar auquel votre code fait référence. En configurant votre exécuteur de test pour qu'il s'exécute dans Robolectric et en définissant l'indicateur de configuration approprié dans les annotations de configuration de robolectric, vous pouvez activer la journalisation à l'aide de leurs méthodes de journalisation.
De Support des tests unitaires :
Le fichier Android.jar utilisé pour exécuter les tests unitaires ne contient aucun code - fourni par l'image système Android sur de vrais appareils. Au lieu de cela, toutes les méthodes lèvent des exceptions (par défaut). C'est pour vous assurer que vos tests unitaires ne testent que votre code et ne dépendent pas d'un comportement particulier de la plate-forme Android (que vous n'avez pas explicitement moqué, par exemple en utilisant Mockito). Si cela s'avère problématique, vous pouvez ajouter l'extrait ci-dessous à votre build.gradle pour modifier ce comportement:
Android {
// ...
testOptions {
unitTests.returnDefaultValues = true
}
}