Focus2ActivityTestpublic class Focus2ActivityTest extends android.test.ActivityInstrumentationTestCase An example of an {@link ActivityInstrumentationTestCase} of a specific activity {@link Focus2}.
By virtue of extending {@link ActivityInstrumentationTestCase}, the target activity is automatically
launched and finished before and after each test. This also extends
{@link android.test.InstrumentationTestCase}, which provides
access to methods for sending events to the target activity, such as key and
touch events. See {@link #sendKeys}.
In general, {@link android.test.InstrumentationTestCase}s and {@link ActivityInstrumentationTestCase}s
are heavier weight functional tests available for end to end testing of your
user interface. When run via a {@link android.test.InstrumentationTestRunner},
the necessary {@link android.app.Instrumentation} will be injected for you to
user via {@link #getInstrumentation} in your tests.
See {@link com.example.android.apis.app.ForwardingTest} for an example of an Activity unit test.
See {@link com.example.android.apis.AllTests} for documentation on running
all tests and individual tests in this application. |
Fields Summary |
---|
private android.widget.Button | mLeftButton | private android.widget.Button | mCenterButton | private android.widget.Button | mRightButton |
Constructors Summary |
---|
public Focus2ActivityTest()The first constructor parameter must refer to the package identifier of the
package hosting the activity to be launched, which is specified in the AndroidManifest.xml
file. This is not necessarily the same as the java package name of the class - in fact, in
some cases it may not match at all.
super("com.example.android.apis", Focus2.class);
|
Methods Summary |
---|
protected void | setUp()
super.setUp();
final Focus2 a = getActivity();
mLeftButton = (Button) a.findViewById(R.id.leftButton);
mCenterButton = (Button) a.findViewById(R.id.centerButton);
mRightButton = (Button) a.findViewById(R.id.rightButton);
| public void | testGoingLeftFromRightButtonGoesToCenter()
// Give right button focus by having it request focus. We post it
// to the UI thread because we are not running on the same thread, and
// any direct api calls that change state must be made from the UI thread.
// This is in contrast to instrumentation calls that send events that are
// processed through the framework and eventually find their way to
// affecting the ui thread.
getActivity().runOnUiThread(new Runnable() {
public void run() {
mRightButton.requestFocus();
}
});
// wait for the request to go through
getInstrumentation().waitForIdleSync();
assertTrue(mRightButton.isFocused());
sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
assertTrue("center button should be focused", mCenterButton.isFocused());
| public void | testGoingRightFromLeftButtonJumpsOverCenterToRight()
sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
assertTrue("right button should be focused", mRightButton.isFocused());
| public void | testPreconditions()The name 'test preconditions' is a convention to signal that if this
test doesn't pass, the test case was not set up properly and it might
explain any and all failures in other tests. This is not guaranteed
to run before other tests, as junit uses reflection to find the tests.
assertTrue("center button should be right of left button",
mLeftButton.getRight() < mCenterButton.getLeft());
assertTrue("right button should be right of center button",
mCenterButton.getRight() < mRightButton.getLeft());
assertTrue("left button should be focused", mLeftButton.isFocused());
|
|