J'utilise la technique ci-dessus mentionnée dans le blog, mais j'ai remarqué qu'il n'attend pas les 15 secondes nécessaires que j'essaie de régler. Ma question ici, si toute la tâche backend est terminée avant 15 secondes, l'espresso l'identifie-t-il et commence les opérations consécutives suivantes? Toute piste sur ceci est appréciée.Comment se comporte l'expresso?
public class ElapsedTimeIdlingResource implements IdlingResource {
private final long startTime;
private final long waitingTime;
private ResourceCallback resourceCallback;
public ElapsedTimeIdlingResource(long waitingTime) {
this.startTime = System.currentTimeMillis();
this.waitingTime = waitingTime;
}
@Override
public String getName() {
return ElapsedTimeIdlingResource.class.getName() + ":" + waitingTime;
}
@Override
public boolean isIdleNow() {
long elapsed = System.currentTimeMillis() - startTime;
boolean idle = (elapsed >= waitingTime);
if (idle) {
resourceCallback.onTransitionToIdle();
}
return idle;
}
@Override
public void registerIdleTransitionCallback(
ResourceCallback resourceCallback) {
this.resourceCallback = resourceCallback;
}
}
==
long waitingTime = DateUtils.MINUTE_IN_MILLIS/4;
IdlingPolicies.setMasterPolicyTimeout(
waitingTime * 2, TimeUnit.MILLISECONDS);
IdlingPolicies.setIdlingResourceTimeout(
waitingTime * 2, TimeUnit.MILLISECONDS);
IdlingResource idlingResource
= new ElapsedTimeIdlingResource(waitingTime);
Espresso.registerIdlingResources(idlingResource);
Je soupçonne que c'est ce qui se passe, mais pourriez-vous poster votre code pertinent ici afin que nous puissions le confirmer? –
Je ne peux pas poster le code, c'est sur le compte d'entreprise. Mais j'ai utilisé l'approche mentionnée dans le blog ci-dessous. [link] http://blog.sqisland.com/2015/06/espresso-elapsed-time.html –
Je voulais dire le code que vous utilisez dans votre propre application, sauf si vous avez directement copié le code dans ce blog, mais changé le délai d'attente à 15 secondes? –