| <p> | |
| This sample is the test application for the | |
| <a href="../../../resources/tutorials/testing/activity_test.html">Activity | |
| Testing</a> tutorial. It tests the <a href="../Spinner/index.html">Spinner</a> example | |
| application. | |
| </p> | |
| <p> | |
| The test application uses the | |
| <a href="../../../reference/android/test/ActivityInstrumentationTestCase2.html"><code>ActivityInstrumentationTestCase2</code></a> | |
| test case class, | |
| which extends both <a href="../../../reference/android/app/Instrumentation">Android instrumentation</a> and the JUnit | |
| <a href="../../../reference/junit/framework/TestCase.html"><code>TestCase</code></a> | |
| class. The test runner is <a href="../../../reference/android/test/InstrumentationTestRunner.html"><code>InstrumentationTestRunner</code></a>. | |
| </p> | |
| <p> | |
| The application shows how to set up a test application project, | |
| how to create the <a href="AndroidManifest.html"><code>AndroidManifest.xml</code></a> | |
| file for a test application, and how to set up a test case class for a test fixture. The | |
| test case class, <a href="src/com/android/example/spinner/test/SpinnerActivityTest.html"><code>SpinnerActivityTest</code></a>, | |
| contains tests that demonstrate the following Android test patterns: | |
| </p> | |
| <ul> | |
| <li> | |
| Test setup: The <code>setUp()</code> method re-initializes the state of the application under test | |
| before each test is run. | |
| </li> | |
| <li> | |
| Initial conditions: The <code>testPreconditions()</code> method demonstrates how to | |
| test that the application under test is properly initialized prior to running the | |
| test fixture. | |
| </li> | |
| <li> | |
| UI interaction: The <code>testSpinnerUI()</code> method demonstrates how to send keystrokes | |
| to the activity under test and then test the result. | |
| </li> | |
| <li> | |
| Application control using instrumentation: The <code>testStateDestroy()</code> and <code>testStatePause()</code> | |
| methods demonstrate how to use instrumentation to trigger stages in the lifecycle of the activity under test. | |
| </li> | |
| </ul> | |
| <p> | |
| The <a href="AndroidManifest.html">manifest</a> declares an <code><instrumentation></code> element | |
| that links the test application with the application under test. Specifically, the | |
| element's <code>android:name</code> attribute specifies <code>InstrumentationTestRunner</code> as the | |
| instrumentation to use. The <code>android:targetPackage</code> attribute specifies | |
| <code>com.android.example.spinner</code> as the name of the Android package that contains the | |
| application under test. | |
| </p> | |
| <img alt="The initial user interface for the Spinner sample application" style="height:230px;" | |
| src="../images/SpinnerTest1.png"/> | |
| <img alt="The JUnit view in Eclipse with ADT, showing a successful test run of SpinnerTest" style="height:230px;" | |
| src="../images/SpinnerTest2.png"/> |