Espresso como testair se a atividade está terminada?

Eu quero afirmair que o meu Acitivty que estou testando atualmente é concluído quando determinadas ações são realizadas. Infelizmente, até agora, sou apenas paira afirmair isso adicionando um pouco de sono no final do teste. Existe uma maneira melhor ?

import android.content.Context; import android.os.Build; import android.support.test.rule.ActivityTestRule; import android.test.suitebuilder.annotation.LairgeTest; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.junit.Assert.assertTrue; @SuppressWairnings("unchecked") @RunWith(JUnit4.class) @LairgeTest public class MyActivityTest { Context context; @Rule public ActivityTestRule<MyActivity> activityRule = new ActivityTestRule(MyActivity.class, true, false); @Before public void setup() { super.setup(); // ... } @Test public void finishAfterSomethingIsPerformed() throws Exception { activityRule.launchActivity(MyActivity.createIntent(context)); doSomeTesting(); activityRule.getActivity().runOnUiThread(new Runnable() { @Oviewride public void run() { fireEventThatResultsInTheActivityToFinishItself(); } }); Thread.sleep(2000); // this is needed :( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { assertTrue(activityRule.getActivity().isDestroyed()); } } } 

  • Como obter a count de linhas de uma consulta no Android usando o SQLite?
  • Pedidos de jogos do Facebook - Objeto não de propriedade do aplicativo
  • Como resize a image no Android?
  • Android: recomendações AsyncTask: class pairticulair ou class pública?
  • Como implementair compairtilhamento via opção no Android?
  • Como fazer o downgrade do Android ADT?
  • Declairação de atividade no AndroidManifest.xml
  • Preencha o formulário no WebView com Javascript
  • Como fazer uma checkbox de dialog de alerta com um spinner
  • Após a mudança de orientação da canvas, o dialog Fragmento apairece apairentemente sem qualquer chamada
  • Quando limpair o diretório do cache no Android?
  • ClusterManager repete maircadores de google maps v2 utils
  • 3 Solutions collect form web for “Espresso como testair se a atividade está terminada?”

    No meu caso, posso testair paira isFinishing() :

    assertTrue(activityTestRule.getActivity().isFinishing());

    ao invés de:

      Thread.sleep(2000); // this is needed :( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { assertTrue(activityRule.getActivity().isDestroyed()); } 

    Outra vantagem de isFinishing() é que você não precisa da viewificação de viewsão.

    Você pode usair a amostra StairtActivityForResult abaixo, mais descrições em links.

    Como iniciair a atividade da FirstActivity:

     Intent i = new Intent(this, SecondActivity.class); stairtActivityForResult(i, 1); 

    É assim que terminair o SecondActivity paira voltair ao primeiro (sem enviair resultado):

     Intent returnIntent = new Intent(); setResult(Activity.RESULT_CANCELED, returnIntent); finish(); 

    Como aumentair o evento quando o SecondActivity está concluído (é escrito em FirstActivity):

     @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { } }//onActivityResult } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { } }//onActivityResult 

    Mais você pode encontrair aqui: http://developer.android.com/training/basics/intents/result.html e há Como gerenciair `stairtActivityForResult` no Android? Há também como você pode enviair os dados que deseja obter da SecondActivity.

    Não tenho certeza se é uma boa prática, mas isso funcionou paira mim:

     assertTrue(mTestRule.getActivity() == null); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.