MainActivityFunctionalTest
if (solo.waitForActivity(MainActivity.class)) {
assertTrue(solo.waitForView(R.id.btn_next));
ImageButton submitBtn = (ImageButton)
solo.getImageButton(R.id.btn_next);
assertNotNull(submitBtn);
solo.clickOnImageButton(R.id.btn_next);
}
Test case failed due to the following exception:
02-12 15:59:11.612: I/TestRunner(3010): junit.framework.AssertionFailedError: 2131361828 ImageButtons are not found!
02-12 15:59:11.612: I/TestRunner(3010): at junit.framework.Assert.fail(Assert.java:50)
02-12 15:59:11.612: I/TestRunner(3010): at com.robotium.solo.Waiter.waitForAndGetView(Waiter.java:513)
02-12 15:59:11.612: I/TestRunner(3010): at com.robotium.solo.Getter.getView(Getter.java:50)
02-12 15:59:11.612: I/TestRunner(3010): at com.robotium.solo.Solo.getImageButton(Solo.java:1850)
02-12 15:59:11.612: I/TestRunner(3010): at com.morpho.morphonfclek.test.MainActivityFunctionalTest.testRegistrationFormIsSubmitted(MainActivityFunctionalTest.java:110)
02-12 15:59:11.612: I/TestRunner(3010): at java.lang.reflect.Method.invokeNative(Native Method)
02-12 15:59:11.612: I/TestRunner(3010): at java.lang.reflect.Method.invoke(Method.java:525)
02-12 15:59:11.612: I/TestRunner(3010): at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
02-12 15:59:11.612: I/TestRunner(3010): at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
02-12 15:59:11.612: I/TestRunner(3010): at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
02-12 15:59:11.612: I/TestRunner(3010): at junit.framework.TestCase.runBare(TestCase.java:134)
02-12 15:59:11.612: I/TestRunner(3010): at junit.framework.TestResult$1.protect(TestResult.java:115)
02-12 15:59:11.612: I/TestRunner(3010): at junit.framework.TestResult.runProtected(TestResult.java:133)
02-12 15:59:11.612: I/TestRunner(3010): at junit.framework.TestResult.run(TestResult.java:118)
02-12 15:59:11.612: I/TestRunner(3010): at junit.framework.TestCase.run(TestCase.java:124)
02-12 15:59:11.612: I/TestRunner(3010): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
02-12 15:59:11.612: I/TestRunner(3010): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
02-12 15:59:11.612: I/TestRunner(3010): at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
02-12 15:59:11.612: I/TestRunner(3010): at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1740)
I've also tried the following and encountered the same error:
ImageButton submitBtn = (ImageButton)
solo.getView(R.id.btn_next);
and the following:
ImageButton submitBtn = (ImageButton)
mainActivity.findViewById(R.id.btn_next);
and the following:
View submitBtn = solo.getView(R.id.btn_next);
but the issue remains the same.
Note that assertNotNull(submitBtn);
does not results in failure ==> the button is actually there!
The layouts are as follows:
registration.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Step1Layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<include android:id="@+id/layout_navibar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/layout_headbar"
layout="@layout/navibar" />
</RelativeLayout>
navibar.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:background="#cc0000" >
<ImageButton
android:id="@+id/btn_back"
android:contentDescription="@string/btn_back"
android:background="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_navi_home"
android:visibility="invisible" />
<ImageButton
android:id="@+id/btn_next"
android:contentDescription="@string/btn_next"
android:background="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_navi_next" />
<TextView
android:id="@+id/label_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/app_name"
android:textColor="@android:color/white"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
solo.getImageButton(int index) is the index of the ImageButton and not the resource ID. Please see the Robotium Javadoc for more information.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.