Det här avsnittet ger en översikt över vad Android-testning är och varför en utvecklare kanske vill använda den.
Det bör också nämna alla stora ämnen inom Android-testning och länka till relaterade ämnen. Eftersom dokumentationen för Android-testning är ny kan du behöva skapa initialversioner av relaterade ämnen.
Android-test är baserade på JUnit, och du kan köra dem antingen som lokala enhetstester på JVM eller som instrumenterade tester på en Android-enhet. Denna sida ger en introduktion till koncept och verktyg för att bygga Android-test
Lokal enhet testar JUnit
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityInstrumentationTest {
@Rule
public ActivityTestRule mActivityRule = new ActivityTestRule<>(
MainActivity.class);
@Test
public void sayHello(){
onView(withText("Say hello!")).perform(click());
onView(withId(R.id.textView)).check(matches(withText("Hello, World!")));
}
}
Instrumenterade test Exempel beroende {androidTestCompile 'com.android.support:support-annotations:24.0.0' androidTestCompile 'com.android.support.test: runner: 0.5' androidTestCompile 'com.android.support.test: regler: 0.5' / / Valfritt - Hamcrest-bibliotek androidTestCompile 'org.hamcrest: hamcrest-bibliotek: 1.3' // Valfritt - UI-test med Espresso androidTestCompile 'com.android.support.test.espresso: espresso-core: 2.2.2' // Valfritt - UI-test med UI Automator androidTestCompile 'com.android.support.test.uiautomator: uiautomator-v18: 2.1.2'}
android {defaultConfig {testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}}
Instrumenterad enhetstestklass
import android.os.Parcel;
import android.support.test.runner.AndroidJUnit4;
import android.util.Pair;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.List;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
@RunWith(AndroidJUnit4.class)
@SmallTest
public class LogHistoryAndroidUnitTest {
public static final String TEST_STRING = "This is a string";
public static final long TEST_LONG = 12345678L;
private LogHistory mLogHistory;
@Before
public void createLogHistory() {
mLogHistory = new LogHistory();
}
@Test
public void logHistory_ParcelableWriteRead() {
// Set up the Parcelable object to send and receive.
mLogHistory.addEntry(TEST_STRING, TEST_LONG);
// Write the data.
Parcel parcel = Parcel.obtain();
mLogHistory.writeToParcel(parcel, mLogHistory.describeContents());
// After you're done with writing, you need to reset the parcel for reading.
parcel.setDataPosition(0);
// Read the data.
LogHistory createdFromParcel = LogHistory.CREATOR.createFromParcel(parcel);
List<Pair<String, Long>> createdFromParcelData = createdFromParcel.getData();
// Verify that the received data is correct.
assertThat(createdFromParcelData.size(), is(1));
assertThat(createdFromParcelData.get(0).first, is(TEST_STRING));
assertThat(createdFromParcelData.get(0).second, is(TEST_LONG));
}
}