Před nějakou dobou jsme psali o vlastní anotaci @AfterFailure v JUnit testech. Naší motivací byly screenshoty neúspěšných selenium testů. JUnit od verze 4.7 má svoje řešení jménem TestWatchman.
Blog: Kategorie Java
Selenium a návrhový vzor Page Objects
Selenium používáme úspěšně už několik posledních projektů. Vždycky byly automatizované testy přínosem pro kvalitu aplikace a ušetřily obrovské množství rutinní práce testerům. Představa, že lze vytvořit Selenium test tak, že se “nakliká”, a pak ho už budeme jen dokola pouštět, vezme hodně rychle za své. Je jasné, že některé části testů bude potřeba použít několikrát a že DRY princip platí i zde. Nakonec stejně nezbývá nic než použít skriptovací nebo programovací jazyk a Selenium testy udržovat jako každý jiný kód. Jak ale testy navrhovat a strukturovat? S tím jsme se nějakou dobu potýkali. Až jsem objevil návrhový vzor Page Objects.
Generátor rodných čísel
V poslední době se věnuji automatizovaným Selenium testům jednoho obchodního systému. Při vkládání osob do systému je nutné zadat rodné číslo a systém provádí jeho validaci a sleduje, jestli je v systému unikátní. Abych mohl automatizovat funkčnost zakládání osob, tak jsem se rozhodl, že vytvořím generátor rodných čísel. Není vše ale tak jednoduché, jak by se mohlo zdát.
JUnit anotace @AfterFailure
Na automatické testování GUI našeho produktu Orinoco používáme framework Selenium. Pro identifikaci a opravu chyby je často klíčové vědět, co uživatel(respektive selenium test) v okamžiku chyby viděl. Selenium umí uložit snímek obrazovky, ale jak definovat okamžik, kdy ho má vytvořit? Nechtěli jsme mít přesně definované, které obrazovky má pokaždé ukládat. Naopak jsme chtěli snímek jen v případě, když Selenium test selže. A k tomu právě lze využít vlastní anotaci @AfterFailure.
Unit testy nad in-memory databází
Použití in-memory databází pro testování je poněkud kontroverzní téma, ale nedělejte rychlé soudy – Tomáš Piňos na svém blogu naznačuje, za jakých okolností má testování za pomoci in-memory databáze svoje opodstatnění. Nenechte si ujít zajímavý článek “Unit testy nad in-memory databází“.
Rozbiješ build, seřve tě Tux!

V AspectWorks jsme fanoušky kontinuální integrace. Píšeme unit testy, snažíme se o dobré pokrytí kódu a s každým commitem do SVN spouštíme integrační build. Aktuálně používáme TeamCity jako server na kontinuální integraci. O selhaných buildech nás doteď informovaly emaily, Jabber, vyskakovací okýnka v Eclipse, atd. Nuda!
Teď jsme si ale pořídili tu správnou vychytávku na notifikaci o buildech: Tux plugin do TeamCity.
Spring: podmíněná konfigurace
Při vývoji aplikací ve Springu jste jistě narazili na problém nasazení do různých prostředí. Pravděpodobně jste to řešili vytvořením samostatných buildů. Ovšem ne vždy je to potřeba. Proč nenechat konfiguraci na adminovi? Existuje jednoduché a elegantní řešení jménem BeanReferenceFactoryBean.
Hledání země nezemě
Kódy zemí, měn, bank, názvy měst a vesnic, poštovní směrovací čísla… Většina aplikací pracuje s nějakými číselníky. Kde ale vzít jejich hodnoty a nekrást? V tomto blogu chci projít a stručně charakterizovat zdroje, které jsem pro potřeby nedávného projektu našel a které se mi osvědčily.
Eclipse efektivně (2.) – Quick Fix
V dnešním díle seriálu pro líné vývojáře (lenost je totiž motorem lidstva), se zaměříme na to, co nám Eclipse nabízí pod pojmy Quick Fix a Quick Assist. Sám nemám o rodílu mezi dvěma pojmy jasno a zdá se mi, že ani samotný Eclipse ne. Je možné, že původně měl Quick Fix sloužit jako rychlá nabídka možností, ale já to používám úplně stejným způsobem jako Content Assist. Tedy k rychlejší tvorbě a úpravám kódu.
JBoss Enterprise Platforms
Ve světě Javy jsou stovky frameworků a knihoven. Jak zajistit, aby komponenty Vašeho projektu bezchybně spolupracovaly? Jak instalovat nové verze či bezpečnostní záplaty těchto komponent, aniž by to mělo negativní dopad na zbytek systému? JBoss nabízí různé platformy pro vývoj enterprise aplikací s podporou aplikačního serveru JBoss, Apache Tomcat a několika známých frameworků (Spring, Hibernate).