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/