मैं यह कहना चाहता हूं कि मेरी Acitivty जो कि मैं वर्तमान में परीक्षण कर रहा हूं, कुछ क्रियाएं पूरी होने पर समाप्त हो जाती हैं। दुर्भाग्य से अब तक मैं परीक्षण के अंत में कुछ नींद जोड़कर जोर दे रहा हूं। क्या कोई बेहतर तरीका है ?एस्प्रेसो अगर गतिविधि समाप्त हो जाती है तो परीक्षण कैसे करें?
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());
}
}
}
धन्यवाद। मुझे लगता है कि मैं पर्याप्त स्पष्ट नहीं था। मेरी समस्या यह है कि मेरे पास दूसरी गतिविधि या पहली गतिविधि नहीं है। मेरे पास केवल एक गतिविधि है। तो मैं केवल आपके समाधान का उपयोग कर सकता हूं अगर मैं अपनी सक्रियता शुरू करने में सक्षम होने के लिए एक डमी पहली गतिविधि शुरू करता हूं जिसे मैं वहां से परीक्षण करना चाहता हूं .. – IHeartAndroid
तो आपके पास अपना रननेबल है और इसे समाप्त होने के बाद कुछ करना चाहता है? –
मैं यह सुनिश्चित करना चाहता हूं कि मेरी गतिविधि fireEventThatResultsInThectivityToFinishItself() के बाद बंद हो गई है; – IHeartAndroid