Wady użycia mocków z mock-frameworków

Idzie sobie transakcja z banku. Trafia ona ci na moje biurko i muszę ją zwalidować. Biorę ci ja JSR-303 i przepuszczam ci ja transakcję przez tą zabawkę… Rzecz w tym, że mam kilka własnych walidatorów, które korzystają z danych pobranych z bazy. Dane sa pobierane raz i zapisywane w takim pseudo cache, który potrafi odpowiedzieć […]

Testy dla wielu danych w TestNG

Sytuacja hipotetyczna. Mamy sobie jakiś interfejs i chcemy przetestować do dość dokładnie. Rzecz w tym, że dane wejściowe muszą spełniać dużo warunków względnie mogą zostać dostarczone w różnych konfiguracjach. Jeżeli chcielibyśmy napisać oddzielny test dla każdego zestawu danych to mówiąc obrazowo byśmy się zajebali. Oczywiści da się to zrobić jak zestawów jest niewiele np. metoda […]

Praca z kodem zastanym – cz. I podział kodu

Każdy z nas prędzej czy później będzie musiał poświęcić swój czas na pracę z kodem zastanym. Angielskojęzyczna część branży ma nawet taki ładny termin „Legacy Code”, który nie obejmuje jednak wszystkiego o czym chcę pisać. W tym miejscu zajmiemy się podziałem kodu zastanego na kilka sposobów. Każdy z nich będzie opisywał kod w innym kontekście […]

Testowanie DAO w JPA 2.0 za pomocą DbUnit część 2

Malowanie zakończone sukcesem. Zatem czas na druga część problemu testowania klas DAO z użyciem DBUnit w środowisku z JPA 2.0. Bogowie, co za tytuł… ja powinienem z tego tytuł magisterki zrobić. Swoją drogą farba „Willow Creek 4” ma taki ładny kolor… jak przechodzące zestawy testów. Do rzeczy. W poprzedniej części postawiłem warunki jakie powinien spełniać […]

Testowanie DAO w JPA 2.0 za pomocą DbUnit część 1

Testy jednostkowe klas typu DAO (Data Access Object) są trudne. Wynika to z samej natury tych testów. Przypomnijmy, że testy jednostkowe powinny być: Małe – powinny testować jedną konkretną rzecz, jednostkę kodu. W Obiektowie jest nią metoda PUBLICZNA. Szybkie – testy powinny trwać krótko ponieważ są często wykonywany. Im krócej trwa tym częściej je wywołujemy. […]

Użycie statycznych importów i @RunWith w JUnit 4

Powrócili po przerwie wakacyjnej moi Anglicy więc możemy wrócić do jedynego słusznego języka na Koziolekweb. Ok dzisiejszy temat zajęć to użycie mieszanki statycznych importów i adnotacji @RunWith w ramach tworzenia testów JUnit. Cel W JUnit nie mamy do dyspozycji adnotacji @BeforeSuite znanej z TestNG. Mały problem. Oczywiście jest możliwość tworzenia zestawów testów w taki sposób: […]

Nie wierz w narzędzia

Ciekawy eksperyment miałem okazję przeprowadzić dziś w pracy. Generalnie problem polega na tym, że aplikacja wykonuje dużo operacji zamiany String na Double i odwrotnie. Testability, Findbug i Cobertura to bardzo przydatne narzędzia w takim wypadku. Cobertura pozwala na sprawdzenie pokrycia testami kodu i gwarantuje, że nie pominiemy czegoś ważnego. Findbug wyszuka kod, który może powodować […]