An Unit Android Test is a test that needs an Android device or emulator but it's different from a UI test because it doesn't start any activities.
In this sample the test can't run without the Android Framework because the Parcel class is used in one of the methods of the Parcelable interface and the way data is written into a Parcel and read from it is not trivial enough to be stubbed.
Note that the unit test is placed in /androidTest/
instead of /test/
.
This project uses the Gradle build system. You can either benefit from IDEs integration such as Android studio or run the tests on the command line.
git clone
../build.gradle
file.LogHistory.java
is the class under test. It implements Parcelable.LogHistoryAndroidUnitTest
is the Android unit testMainActivity.java
shows the Parcelable in action but note that the test is not showing any
activities on the device or emulator.android.support.test.runner.AndroidJUnitRunner
android.support.test.runner.AndroidJUnitRunner
The unit test will be ran automatically.
After downloading the projects code using git clone
you'll be able to run the
unit tests using the command line:
./gradlew connectedCheck
If all the unit tests have been successful you will get a BUILD SUCCESSFUL
message.
A report in HTML format is generated in app/build/outputs/reports/androidTests/connected
compileSdkVersion 26
applicationId "com.example.android.testing.unittesting.basicunitandroidtest"
minSdkVersion 9
targetSdkVersion 26
versionCode 1
versionName "1.0"
package com.example.android.testing.unittesting.basicunitandroidtest
Lets the user add lines to a multi-line log. When the device is rotated, the state is saved and restored.
Called when the user wants to append an entry to the history.