Şu anda test ettiğim Etkinlikimin belirli eylemler gerçekleştirildiğinde bittiğini iddia etmek istiyorum. Ne yazık ki şimdiye kadar sadece testin sonunda biraz uyku ekleyerek bunu iddia ediyorum. Daha iyi bir yolu var mı?Espresso Aktivite bittiğinde nasıl test edilir?
import android.content.Context;
import android.os.Build;
import android.support.test.rule.ActivityTestRule;
import android.test.suitebuilder.annotation.LargeTest;
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;
@SuppressWarnings("unchecked")
@RunWith(JUnit4.class)
@LargeTest
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() {
@Override
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());
}
}
}
Teşekkür Yanıtınız için. Sanırım yeterince açık değildim. Benim sorunum, ikinci bir etkinliğim veya ilk etkinliğim olmaması. Benim sadece bir etkinliğim var. Bu yüzden ben senin çözümünü kullanabilirim sadece ben sadece bir test başlatmak istiyorum benim Activtiy başlatmak için bir kukla ilk Etkinlik başlarsa .. – IHeartAndroid
böylece senin runnable var ve bittikten sonra bir şeyler yapmak ister? –
Etkinliğimin, fireEventThatResultsInTheActivityToFinishItself() öğesinden sonra kapatıldığından emin olmak istiyorum; – IHeartAndroid