I have tedious problem about Robotium. Normally While I test with robotium, if It is gone to SecondActivity by clicking a button in FirstActivity, Robotium can be checked that SecondActivity with assertCurrentActivity() method.
For instance A activity is opened, A button is clicked and B Activity is opened and assertCurrentActivity(B) returns true.
Hovewer; if Applicaiton is started in onCreate method that is in A activity, B activity is opened but Robotium can not be checked with assertCurrentActivity(B). It says that still current activity is A activity.
MainActivity.class
@Override
public void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
selector();
sharedPrefencesHelper.setAppLaunched( true );
periodsCount = periodListOrdering.getAllPeriodSize();
if ( periodsCount < 0 )
intentCalendarActivity();
replaceNewFragment( EntryFragment.newInstance( this ), ENTRYPAGE_FRAGMENT_TAG );
}
intentCalendarActivity() method is send to CalendarActivity.class and CalendarActivity is correctly opened.
My Test code
public void testScenario1() {
// Kilidi aç
solo.unlockScreen();
// DB içindek tüm periodları sil.
myDatabaseQuery.clearPeriodDB();
// CalendarActivity için ne olur ne olmaz diye bekleme yapalım.
solo.waitForActivity( "CalendarActivity" );
// Takvimi doğrula.
solo.assertCurrentActivity( "CalendarActivity not found", "CalendarActivity" );
// Hiç bişey yapmadan geri dön.
solo.goBack();
// NoDataMessageActivity acitivity e gönderilmelidir.
solo.waitForActivity( NO_DATA_MESSAGE_ACTIVITY );
// NoDataMessageActivity gittiğini doğrula
solo.assertCurrentActivity( NO_DATA_MESSAGE_ACTIVITY + " is not found", NO_DATA_MESSAGE_ACTIVITY );
// Bir şey yapmadan geri dön
solo.goBack();
}
Message that is come from Robotium
junit.framework.ComparisonFailure: CalendarActivity not found expected:<[Calendar]Activity> but was:<[Main]Activity>
at com.robotium.solo.Asserter.assertCurrentActivity(Asserter.java:43)
at com.robotium.solo.Solo.assertCurrentActivity(Solo.java:972)
at com.bitbar.recorder.extensions.ExtSolo.assertCurrentActivity(ExtSolo.java:193)
at com.medyasef.she.NoDataActivityTest.testScenario1(NoDataActivityTest.java:54)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)