Dwa słowa o wydajności Vaadin

Jak rozmawiam z kimś o Vaadin to pada zazwyczaj pytanie „co z wydajnością”. Otóż odpowiedź na to pytanie jest dość dobrze znana i brzmi „to zależy”. Vaadin działa w trochę inny sposób niż typowe, nawet ajaxowe, aplikacje webowe. Ma to związek z jego architekturą i utrzymywaniem aktualnego stanu okna również po stronie serwera. Zatem każda […]

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. […]

O usługach JSE słowa dwa

Znowu 4programmers: Własne usługi w JSE 1 Wstęp 2 Przygotowanie środowiska 3 Interfejs serwisu 3.1 Testowanie usług 3.2 Ładowanie implementacji 4 Implementacja usługi 4.1 Klasa usługi 4.2 Test usługi 4.3 Implementacja interfejsu biznesowego 4.4 Zadanie dla czytelnika 5 Aplikacja testowa Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W […]

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: […]

WicketTester and CustomSession

I try to use WicketTester and custom session class. Of course it doesn’t work.: Listing 1. WicketTester and Session, fail INFO – WebApplication – [WicketTester$DummyWebApplication] Started Wicket version 1.3.6 in development mode ERROR – RequestCycle – Can’t instantiate page using constructor public pl.koziolekweb.programmers.wicket.HomePage(org.apache.wicket.PageParameters) and argument org.apache.wicket.WicketRuntimeException: Can’t instantiate page using constructor public pl.koziolekweb.programmers.wicket.HomePage(org.apache.wicket.PageParameters) and argument […]

PMT 0.3 gotowe

Nowości niewiele, ale są. Doszły dwie metody pozwalające na wynullowanie wskazanego pola oraz wszystkich pól obiektu. Doszła też strona w języku angielskim. Nadal nie mam części testów. 0.4 TODO: Dokumentacja po angielsku Testy z wykorzystaniem pól final. Jeszcze więcej testów. Zapraszam do walki. Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte […]

Private Member Testing

Istnieją dwie szkoły testowanie. Pierwsza zakłada, że testować należy tyko kod publiczny. Druga, że należy testować cały kod. Pierwsza mówi, że tylko dobrze działający kod publiczny jest w zakresie zainteresowania klienta. Zgoda. Jako klient nie interesuje mnie jak dokładnie coś działa. Rzadko wnikam w kod używanych bibliotek. Jeżeli już to robię to zazwyczaj interesuje mnie […]

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ć […]

Nigdy nie testuj kodu

Szokujące? I dobrze. Chodzi mi tu o dwa polecenia mavena, które mogą przysporzyć problemów. Pierwsze: Listing 1. nie za dobrze $mvn clean compile test jar:jar dependency:copy-dependencies javadoc:javadoc site-deploy Drugie: Listing 2. też nie za dobrze $mvn clean compile jar:jar dependency:copy-dependencies javadoc:javadoc site-deploy Na czym polega różnica? W pierwszym przypadku jeżeli jakikolwiek test się zawali to […]