autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG ód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w odzi Marek Defeci«ski Testowanie w systemie Android
aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG ód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w odzi Marek Defeci«ski Testowanie w systemie Android
aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG ód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w odzi Marek Defeci«ski Testowanie w systemie Android
aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG ód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w odzi Marek Defeci«ski Testowanie w systemie Android
Projekt, w którym mnie nie ma Urz¡dzenie oparte o Android Dedykowany sprz¦t (nie telefon) Wspóªpraca z zewn¦trznymi interfejsami (bluetooth, radio, CAN, rozpoznawanie mowy) Wspomaganie testowania Automatyzacja testów (instrumentacja/robotium/junit) Raportowanie (+timeline) Integracja z zewn¦trznymi narz¦dziami Biblioteki wspomagania testów Marek Defeci«ski Testowanie w systemie Android
Projekt, w którym mnie nie ma Urz¡dzenie oparte o Android Dedykowany sprz¦t (nie telefon) Wspóªpraca z zewn¦trznymi interfejsami (bluetooth, radio, CAN, rozpoznawanie mowy) Wspomaganie testowania Automatyzacja testów (instrumentacja/robotium/junit) Raportowanie (+timeline) Integracja z zewn¦trznymi narz¦dziami Biblioteki wspomagania testów Marek Defeci«ski Testowanie w systemie Android
testowa¢, o to jest pytanie? Jednostkowo/Funkcjonalnie/Integracyjne Manualnie/Automatycznie Wydajno±ciowo Nie wa»ne jak, ale wa»ne »eby testowa¢ Marek Defeci«ski Testowanie w systemie Android
testowa¢, o to jest pytanie? Jednostkowo/Funkcjonalnie/Integracyjne Manualnie/Automatycznie Wydajno±ciowo Nie wa»ne jak, ale wa»ne »eby testowa¢ Marek Defeci«ski Testowanie w systemie Android
testowa¢, o to jest pytanie? Jednostkowo/Funkcjonalnie/Integracyjne Manualnie/Automatycznie Wydajno±ciowo Nie wa»ne jak, ale wa»ne »eby testowa¢ Marek Defeci«ski Testowanie w systemie Android
poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego ªatwiej. Testowanie byªo wzi¦te pod uwag¦ na etapie projektowania zintegrowany junit 3 annotacje Wspólne metody na ró»nych urz¡dzeniach instalacja (adb) uruchamianie testów (am instrument) Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Dlaczego ªatwiej. Testowanie byªo wzi¦te pod uwag¦ na etapie projektowania zintegrowany junit 3 annotacje Wspólne metody na ró»nych urz¡dzeniach instalacja (adb) uruchamianie testów (am instrument) Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Co przychodzi z Androidem? Narz¦dzia (SDK lub kod) logcat hierarchyviewer monkey monkeyrunner google test runner Otwarty kod mo»na odnale¹¢ nieudokumentowane narz¦dzia mo»na czyta¢ kod i patrze¢ jak dziaªaj¡ narz¦dzia mo»na wybiera¢ kawaªki kodu i u»ywa¢ ponownie Debugging przewa»nie dziaªa tak»e na urz¡dzeniu Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Co przychodzi z Androidem? Narz¦dzia (SDK lub kod) logcat hierarchyviewer monkey monkeyrunner google test runner Otwarty kod mo»na odnale¹¢ nieudokumentowane narz¦dzia mo»na czyta¢ kod i patrze¢ jak dziaªaj¡ narz¦dzia mo»na wybiera¢ kawaªki kodu i u»ywa¢ ponownie Debugging przewa»nie dziaªa tak»e na urz¡dzeniu Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Co przychodzi z Androidem? Narz¦dzia (SDK lub kod) logcat hierarchyviewer monkey monkeyrunner google test runner Otwarty kod mo»na odnale¹¢ nieudokumentowane narz¦dzia mo»na czyta¢ kod i patrze¢ jak dziaªaj¡ narz¦dzia mo»na wybiera¢ kawaªki kodu i u»ywa¢ ponownie Debugging przewa»nie dziaªa tak»e na urz¡dzeniu Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Anatomia testowania Aplikacje w androidzie zorganizowane s¡ w paczki (Android PacKage) Test w Androidzie to te» paczka (apk) Paczki w Androidzie nie maj¡ dost¦pu do swojego kodu (security) Testowanie u»ywa instrumentacji Dzi¦ki instrumentacji test i aplikacja testowana pracuj¡ w tym samym procesie warunek: podpisane s¡ tym samym kluczem Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Anatomia testowania Aplikacje w androidzie zorganizowane s¡ w paczki (Android PacKage) Test w Androidzie to te» paczka (apk) Paczki w Androidzie nie maj¡ dost¦pu do swojego kodu (security) Testowanie u»ywa instrumentacji Dzi¦ki instrumentacji test i aplikacja testowana pracuj¡ w tym samym procesie warunek: podpisane s¡ tym samym kluczem Marek Defeci«ski Testowanie w systemie Android
Android - tera¹niejszo±¢ Anatomia testowania Aplikacje w androidzie zorganizowane s¡ w paczki (Android PacKage) Test w Androidzie to te» paczka (apk) Paczki w Androidzie nie maj¡ dost¦pu do swojego kodu (security) Testowanie u»ywa instrumentacji Dzi¦ki instrumentacji test i aplikacja testowana pracuj¡ w tym samym procesie warunek: podpisane s¡ tym samym kluczem Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Sposoby testowania na urz¡dzeniach mobilnych Brak testów nie ma czasu nie umiemy Testy funkcjonalne (instrumentacja/robotium) wolne (kompilacja, dex, adb install) jeszcze wolniej (emulator) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Sposoby testowania na urz¡dzeniach mobilnych Brak testów nie ma czasu nie umiemy Testy funkcjonalne (instrumentacja/robotium) wolne (kompilacja, dex, adb install) jeszcze wolniej (emulator) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Sposoby testowania c.d. Mocki Reverse engineering istniej¡cego kodu Ci¦»ko si¦ czyta Nie pomagaj¡ w refaktoryzacji Tworzenie bilbiotek POJO - niezale»nych od systemu i dobrze przetestowanych Dobra idea, ale Za du»o kodu Za du»o implementacji Za du»o adapterów Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Sposoby testowania c.d. Mocki Reverse engineering istniej¡cego kodu Ci¦»ko si¦ czyta Nie pomagaj¡ w refaktoryzacji Tworzenie bilbiotek POJO - niezale»nych od systemu i dobrze przetestowanych Dobra idea, ale Za du»o kodu Za du»o implementacji Za du»o adapterów Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Sposoby testowania c.d. Mocki Reverse engineering istniej¡cego kodu Ci¦»ko si¦ czyta Nie pomagaj¡ w refaktoryzacji Tworzenie bilbiotek POJO - niezale»nych od systemu i dobrze przetestowanych Dobra idea, ale Za du»o kodu Za du»o implementacji Za du»o adapterów Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box atwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) atwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box atwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) atwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box atwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) atwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box atwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) atwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box atwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) atwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box atwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) atwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box atwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) atwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric Shadow objects Przechwytuje ªadowanie klas z android.jar i zamienia kod na u»ywalny (javassist) - podstawowe zachowanie Podpina obiekty shadow do klas androida Klasy androida sªu»¡ jako proxy do shadow Obiekty zapami¦tuj¡ stan (mo»na sprawdza¢ w testach) Dodaje troch¦ nowych metod Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric Widoki i resource-y Tworzy map¦ widoków na podstawie resourców (res!) Tworzy map¦ obiektów cieni Przetwarza layouty - cz¦±¢ atrybutów jest przepisywana do cieni Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Robolectric przykªad EventDetailsActivityWithRoboelectric Test typu JUnit4 @Test @RunWith(RobolectricTestRunner.class) Maven Szybko! Robolectric.shadowOf(...) CommunicationWithRobolectricTest atwe mockowanie http I znowu szybko! Robolectric.addPendingHttpResponse(...) Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) atwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) atwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) atwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) atwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) atwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) atwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Co jeszcze mo»na u»y¢? Android-mock u»ywa annotacji tworzy klasy mock podczas kompilacji record and replay (easy mock) mocki s¡ pakowane do apk Powermock oparty o mockito lub easymocka wspiera TestNG i JUnit testy w JVM Calculon DSL dla Androida czytelne testy assertThat(R.id.button_2).isVisible(); assertThat(R.id.button_2).click().implies(R.id.launch_bar_button).is Marek Defeci«ski Testowanie w systemie Android
the box Robotium Robolectric Inne Co jeszcze mo»na u»y¢? RenamingDelegatingContext zmiany w systemie plików s¡ przekierowywane do innego miejsca (prex) IsolatedContext pozwala na rozmawianie z innymi pakietami ale nie z urz¡dzeniem android.test.* Marek Defeci«ski Testowanie w systemie Android