11
votes

Poste de manutention robolectrique

J'ai des problèmes de test manutention code avec robolectrique. Par exemple: xxx

Comment exécuter le code dans le exécutable immédiatement? Il ne fonctionne pas avant que mon test ne soit fait exécuter.


1 commentaires

Avez-vous appelé client.dosomestuff () sur le fil principal ou le fil d'arrière-plan?


3 Réponses :


8
votes

Je pense que cela devrait faire un travail: xxx pré>

ou s'il existe plusieurs tâches programmées: p>

Robolectric.runUiThreadTasksIncludingDelayedTasks();


0 commentaires

11
votes

Pour la version 3.0 Robolectric, vous devez utiliser: org.robolectric.robolectric.flushforegroundThreadschédale
ou de
org.robolectric.shadows.shadowlooper.runuthreadtasks
org.robolectric.shadows.shadowlooper.RunUTithReadTasksincludingDelayedTasks

Référence: 2.4 à 3.0 Guide de mise à niveau


0 commentaires

4
votes

à Robolectrie 3.0, vous pouvez faire

HandlerThread thread = new HandlerThread("test");
thread.start();
Handler handler = new Handler(thread.getLooper());
handler.post(new Runnable() {run(){
  int a = 0;
}};
((ShadowLooper) ShadowExtractor.extract(thread.getLooper())).idle(); // this will execute line int a = 0;


0 commentaires