diff options
| author | Joe Malin <jmalin@google.com> | 2010-04-20 19:54:58 -0700 |
|---|---|---|
| committer | Joe Malin <jmalin@google.com> | 2010-04-30 08:42:24 -0700 |
| commit | bee8cd502fb080bd4353909a0bf04530e7d53d9c (patch) | |
| tree | 6ac40a7c70ae9924021a93ec4ee98b336d69350b | |
| parent | e73e4911f38d62fcbe98e01981c8d6e17143b502 (diff) | |
Doc Change: Files for the Spinner and SpinnerTest sample applications, part of Activity Testing tutorial
Change-Id: If9b6f214cdad870257efc34193eed846cde2ec47
| -rw-r--r-- | samples/Spinner/_index.html | 27 | ||||
| -rw-r--r-- | samples/SpinnerTest/AndroidManifest.xml | 1 | ||||
| -rw-r--r-- | samples/SpinnerTest/_index.html | 53 | ||||
| -rw-r--r-- | samples/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.java | 20 |
4 files changed, 71 insertions, 30 deletions
diff --git a/samples/Spinner/_index.html b/samples/Spinner/_index.html index 2e50d9d88..babe099dc 100644 --- a/samples/Spinner/_index.html +++ b/samples/Spinner/_index.html @@ -1,22 +1,21 @@ <p> -This sample is the application under test for the -<a href="../../../resources/tutorials/testing/activity_test.html">Activity - Testing Tutorial</a>. It contains a single Activity that displays a -Spinner widget backed by an array of strings containing the names of the planets -in the Solar System. When an entry is selected from the Spinner, the entry is -displayed in a text box. +This sample is a simple application that serves as an application under test +for the <a href="../SpinnerTest/index.html">SpinnerTest</a> test application example. </p> <p> -An important part of this application is state management. When the application -is first run, the spinner widget displays a default selection of -"Earth". Thereafter, the application saves a selection as soon as it +This application illustrates basic state management across the Android application life cycle, +mainly for the purpose of highlighting common patterns of Activity testing. When the application +is first run, the spinner widget displays a default selection of "Earth". +Thereafter, the application saves a selection as soon as it is made. The application remembers the selection from invocation to invocation, even if the device reboots. </p> <p> -For more information about this application, see the Activity Testing Tutorial. -The test application for this application is in the <a - href="../SpinnerTest/index.html">SpinnerTest</a> sample application. +The test application <a href="../SpinnerTest/index.html">SpinnerTest</a> +shows you how to set up tests to monitor and prevent code regressions in the +management of state across invocations and power cycles. +</p> +<p> +For more information about this application, see the +<a href="../../../resources/tutorials/testing/activity_test.html">Activity Testing</a> tutorial. </p> - -<img alt="The Spinner application" src="../images/testing/spinner_main_screen.png" /> diff --git a/samples/SpinnerTest/AndroidManifest.xml b/samples/SpinnerTest/AndroidManifest.xml index e151d6e94..99830f879 100644 --- a/samples/SpinnerTest/AndroidManifest.xml +++ b/samples/SpinnerTest/AndroidManifest.xml @@ -26,6 +26,7 @@ package="com.android.example.spinner.test" android:versionCode="1" android:versionName="1.0"> + <uses-sdk android:minSdkVersion="3" /> <application android:label="@string/app_name"> <!-- this package needs to link against the android.test library, diff --git a/samples/SpinnerTest/_index.html b/samples/SpinnerTest/_index.html index 7a176fd1e..64e319af9 100644 --- a/samples/SpinnerTest/_index.html +++ b/samples/SpinnerTest/_index.html @@ -1,9 +1,52 @@ <p> -This sample is the test application for the -<a href="../../../resources/tutorials/testing/activity_test.html">Activity - Testing Tutorial</a>. Refer to the tutorial text for a full explanation -of this sample code. + 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> - This application does not have an Android GUI. + 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"/> diff --git a/samples/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.java b/samples/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.java index 4c233174d..1cfe32a56 100644 --- a/samples/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.java +++ b/samples/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.java @@ -26,15 +26,13 @@ import android.widget.Spinner; import android.widget.SpinnerAdapter; import android.widget.TextView; -/** +/* * Tests the example application Spinner. Uses the instrumentation test class - * {@link ActivityInstrumentationTestCase2} as its base class. The tests include - * <ol> - * <li>test initial conditions</li> - * <li>test the UI</li> - * <li>state management - preserving state after the app is shut down and restarted, preserving - * state after the app is hidden (paused) and re-displayed (resumed)</li> - * </ol> + * ActivityInstrumentationTestCase2 as its base class. The tests include + * - test initial conditions + * - test the UI + * - state management - preserving state after the app is shut down and restarted, preserving + * state after the app is hidden (paused) and re-displayed (resumed) * * Demonstrates the use of JUnit setUp() and assert() methods. */ @@ -91,7 +89,7 @@ public class SpinnerActivityTest extends ActivityInstrumentationTestCase2<Spinne private SpinnerAdapter mPlanetData; - /** + /* * Constructor for the test class. Required by Android test classes. The constructor * must call the super constructor, providing the Android package name of the app under test * and the Java class name of the activity in that application that handles the MAIN intent. @@ -101,7 +99,7 @@ public class SpinnerActivityTest extends ActivityInstrumentationTestCase2<Spinne super("com.android.example.spinner", SpinnerActivity.class); } - /** + /* * Sets up the test environment before each test. * @see android.test.ActivityInstrumentationTestCase2#setUp() */ @@ -140,7 +138,7 @@ public class SpinnerActivityTest extends ActivityInstrumentationTestCase2<Spinne } - /** + /* * Tests the initial values of key objects in the app under test, to ensure the initial * conditions make sense. If one of these is not initialized correctly, then subsequent * tests are suspect and should be ignored. |
