Jak udělat TDD v Androidu? Část 2 - Architektura projektu, nastavení a testování jednotek

Tento tutoriál projde architekturou projektu, nastavením od nuly a nakonec napíšeme několik testů Unit.

V části Proč se vývojáři bojí kódu refaktorů a v části 1 této řady jsme se zabýval tím, jak je důležitý automatizační test, co je testování pyramidy, jaký typ testu, jaké nástroje lze použít k provádění TDD v androidu a kde jsou testovací složky nachází se.

Architektura projektu

V souladu s automatizačním testováním musíme dodržovat určitý druh architektury, který nám pomůže testovat a strukturovat naši aplikaci čistým a testovatelným způsobem.

Existuje mnoho vzorů architektury, které snadno podporují model TDD Model – View – Presenter (MVP), Model – View – Viewmodel (MVVM).

Vybereme MVP pro naši výukovou řadu.

  1. Model je obvykle POJO, které používají Presenter a View k předávání informací nebo k jednání.
  2. Pohled (aktivita nebo fragment) je pasivní rozhraní, které zobrazuje data. Toto je místo, kde nastavujeme data a provádíme změny v uživatelském rozhraní, jako je skrytí, pohybující se zobrazení.
  3. Prezentující rozhodne prezentační logiku, naše obchodní logika zde sídlí. Hovoří, že úložiště získává data, formátuje je tak, aby se zobrazovala v náhledu. Rozhoduje o tom, co by se mělo v zobrazení zobrazit. Snažte se vyhnout použití kódu specifického pro Android v moderátoru co nejvíce (vím někdy, že je to těžší ).

Nastavení projektu

V tomto příspěvku vytvoříme jednoduchou aplikaci pro Android od začátku. Aplikace, kterou vytvoříme, je jednoduchá aplikace, která se přihlašuje a přijímá účast studentů.

  1. Otevřete Android Studio a vyberte „Zahájit nový projekt Android“
  2. Zadejte název aplikace „StudentAttendance“, firemní doménu „nilesh.tdd.com“. Klepněte na tlačítko Další

3. Vyberte verzi systému Android, kterou chcete podporovat, a klikněte na „Další“.

4. Vyberte „Empty Activity“ a klikněte na „Next“

5. Zadejte Název aktivity a klikněte na „Dokončit“

6. Konečná struktura projektu bude vypadat jako na obrázku níže

Testování jednotky

Po nějakém refactoring struktury balíčku, checkout commit (81d1668667bcb5eacf4cf94a8dffe738ad206d67)

Použijte níže uvedené příkazy

klon git https://github.com/NileshJarad/TDD_Demo.git
git checkout 81d1668667bcb5eacf4cf94a8dffe738ad206d67

Pokud se někdo dostane dolů chyba po pokladně

Poté změňte verzi build.gradle na 2.1.2 v projektu build.gradle

A konečně jsme tady, abychom si při kódování dali špinavé ruce .

Nyní napíšeme náš první testovací případ a zkontrolujeme: „Pokud se uživatel pokusí přihlásit po třech pokusech, zobrazí se mu chybová zpráva“

Přejděte do třídy com.tdd.nilesh.studentattendance.login.LoginPresenter. Kurzor na název třídy a stiskněte klávesy SHIFT + CTRL + T (pro Mac SHIFT + CMD + T), objeví se okno s možností Vytvořit nový test.
V našem případě LoginPresenterTest automaticky vybere název třídy pro Test a připojí Test na konec názvu třídy.
Klikněte na OK. Znovu se objeví v okně, pro které je testovací složka. Jak píšeme JUnit, vyberte ../app/src/test/…, vytvoří testovací třídu se stejnou strukturou balíčku.

Posílám snímek kódu, protože chci, abys kód napsal.
Nyní napíšeme Test, jak je uvedeno níže.

@Test anotace označuje, že je to test. Jako incrementLoginAttempt & isLoginAttemptExceeded jsou označeny červenou barvou. Musíme vytvořit metodu v LoginPresenter. Stiskněte ALT + ENTER, která vytvoří metody v prezentující třídě, jak je ukázáno níže.

Napsali jsme neúspěšný test. Postupně pro ni napíšeme jeho implementaci. Chcete-li spustit test, stiskněte malý zelený přehrávaný obrázek vlevo od názvu testu.

Jak jsme psali neúspěšný test, výstup testu by měl být níže.
Očekáváme 1 jako výstup, ale dostáváme 0.

Nyní budeme psát absolvování testu implementace pro test. Níže je implementace pro absolvování testu.

Znovu proveďte test, měl by projít .

Použijte příkaz níže checkout pro Repo až dosud.

git checkout 302962ea6f63aa3afba003efa043ebacbaf02345

Nyní musíte napsat test checkIfLoginAttemptIsNotExceeded a zkontrolovat, zda je implementace správná. Pokud ne, nebojte se, bude to v příštím odevzdání.

Nyní chceme zkontrolovat „Uživatelské jméno a heslo je správné“

Takže napíšeme test a níže je to, jak to vypadá (Neúspěšný test )

Znovu opakujte proces pro ALT + ENTER a spusťte test. Vzhledem k tomu, že test selhal, zobrazí červené upozornění na selhání.

Nyní budeme psát jeho implementaci, jak je uvedeno níže.

Spusťte test znovu, nyní to bude procházet.

Nyní vyzkoušejte testUsernameAndPasswordIsInCorrect test case.

Použijte příkaz níže checkout pro Repo až dosud.

git checkout 4771fbfb8c6cbda98d9f01ac5e035ea02f0f5da6

Mezitím bych rád slyšel návrhy a podněty k tomu.

Na zdraví !!!.

Jemně zasuňte ♥ ️ níže.

Pokladna Další příspěvek: