Android Programjaim

Androidfejlesztes

Teszteles androidon #4 - Instrumentation tests

2016. augusztus 10. 13:28 - lacas82

Lassuk mit ir errol a Vogella: Az Android Testing API lehetoseget ad, hookokra az android komponensekhez es eletciklushoz. Es persze a felhasznaloi interakciokhoz.

Azaz pl van egy Activityd, azon egy gomb, instrumentation-on keresztul lehetoseged van ezeket kodbol tesztelni. PL egy gombnyomast tudsz szimulalni.

Az instument. tesztek azok olyan unit tesztek, amik a mobil eszkozon vagy az emulatoron futnak nyilvan nem a JVM-en. Mig ugye a local unit teszt az a JVM-en fut.

Mockito egy mocking keretrendszer, amivel tudjuk mokkolni azokat az android rendszer reszeket amik nem szuksegesek a tesztunkhoz.

Az instrumentation alapu teszt tehat egy olyan osztaly, ami megengedi, hogy pl key eventeket kuldjunk vagy touch eventeket egy bizonyos cuccnak at. Pl. egy Viewnak ugye.

Vagy pl el tud inditani egy masik activity-t teszt celjabol, etc.

Az alap test runner ez esetben a:

InstrumentationTestRunner

es a helyuk pedig:

app/src/androidTest/java

gradle-be mik kellenek ehhez:

defaultConfig {
       ..... more stuff
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

dependencies {
    // Unit testing dependencies
    androidTestCompile 'junit:junit:4.12'
    // Set this dependency if you want to use the Hamcrest matcher library
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
    // more stuff, e.g., Mockito
}

Majd a tesztunket annotalni kell ezzel:

@RunWith(AndroidJUnit4.class)

ami a JUnit4 leszarmazottja.

A tesztek futtatasa parancssorbol:

gradlew connectedCheck

AS-bol, pedig Run a classon.

Teszt riportok helye:
app/build/reports/androidTests/connected/