Začátek s testováním – co k Seleniu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Dell
Člen | 4
+
0
-

Ahoj,
chtěl bych začít praktikovat TDD (a pak BDD) a tak nějak tápu, co je doporučeno testovat a čím. Začal bych určitě Seleniem, ale co třeba modely a presentery?

newPOPE
Člen | 648
+
0
-

Tak to prajem vela stastia :-). #joke

My sme pouzivali pre Selenium testovanie:

  • Selenium 2
  • PHP Webdriver od Facebooku (https://github.com/…hp-webdriver + vlastny fork)
  • a nakoniec nejaka ta architektura Selen… testov lebo sa moze stat, ze sa do par dni, hodin zamotas a uz to nebudes chciet prepisovat.

K tej architekture doporucujem:

llook
Člen | 407
+
0
-

Nedoporučoval bych začínat rovnou Seleniem. Kromě toho, že se budeš učit psát testy, tak tě bude brzdit spousta problémů okolo. Taky za mnohem důležitější považuju jednotkové a integrační testy modelu.

K té architektuře, silně doporučuju následovat návrhový vzor Page Object. Tzn. zavést jednu vrstvu mezi testy a HTML, abys kvůli předělávkám HTML nemusel opravovat všechny testy, ale jenom tu mezivrstvu: https://code.google.com/…/PageObjects

My na to máme takovou pomocnou knihovnu. Ještě není ve stavu, v jakém bych ji doporučil k nasazení, ale tak aspoň pro inspiraci: https://github.com/Clevisaci/Se34

Dell
Člen | 4
+
0
-

Asi jste chtěl napsat jednotkové testy modelu a integrační testy, protože integrační testy modelu neznám.
Jinak moc díky, nastuduju si to.

Jan Tvrdík
Nette guru | 2595
+
0
-

@Dell: Myslím že @llook chtěl napsat přesně to, co napsal :) Integrační testy modelu ověřují, že spolu jednotlivé komponenty modelu spolupracují dobře. Už ale např. netestují spolupráci modelu s presentery.

enumag
Člen | 2118
+
0
-

@Dell: Integrační test modelu je například testování fasády s ostrými repozitáři (bez mocků). Model sám o sobě má více vrstev a integrační testy tam mají velmi dobrý smysl.

Dell
Člen | 4
+
0
-

Testovat komunikaci vrstev modelů a jednotlivé presentery je mi dost proti srsti (respektive jsem nikdy neslyšel dost silné argumenty). Většinou to s přehledem pokryjí integrační/akceptační testy aplikace.
Jinak moc díky za vysvětlení.

Editoval Dell (3. 6. 2013 13:09)

llook
Člen | 407
+
0
-

Já beru model jako dost autonomní celek. Proto by mi naopak bylo proti srsti spoléhat na to, že mám funkčnost modelu pokrytou testem většího celku, který je k němu ve vztahu has-a.

Jde třeba o takové ty testy, které ověřují, že nemám logické chyby v SQL dotazech. Potřebuju k tomu opravdovou databázi (resetovanou do známého stavu), potřebuju všechny objekty, které se na sestavování toho kterého dotazu podílí, ale už nepotřebuju zbytek aplikace. Zato potřebuju, aby to běhalo pokud možno rychle, abych si mohl dovolit testovat i různé hraniční situace.

Dell
Člen | 4
+
0
-

Pěkně vysvětlené, moc díky!
Určitě nad tím budu uvažovat u některých projektů.