[UT-3] Mocki

22 sierpnia 2011 07:00 w kategorii: pro
[ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Kiedyś puściłem cały cykl postów o testowaniu z wykorzystaniem Rhino Mocks, pełna lista postów zebrana jest tutaj. Jednak aby zachować ciągłość aktualnej serii, należy o mockach kilka słów wspomnieć. Mocki służą do symulowania zachowania środowiska zewnętrznego względem testowanej klasy/metody. Pisząc testy jednostkowe sprawdzające logikę biznesową nie powinniśmy skupiać się na tym, czy mamy poprawnie skonfigurowaną... [More]

Patrzymy czasem na kogoś, kto wydaje się mieć "lepsze" - pod jakimkolwiek względem - życie i mówimy: "ten to ma szczęście". Sam z reguły nie mam zbyt wielu powodów do narzekań i zwykle realizuję cele, na których mi najbardziej zależy, więc niejednokrotnie słyszałem, że jestem "szczęściarzem". Ale czy na pewno chodzi tu tylko o szczęście? Czyli z definicji coś, na co nie mamy żadnego wpływu. Tępy zestaw zbiegów okoliczności prowadzący do pozytywnego efektu. Zastanów... [More]

[UT-2] Czym testować?

17 sierpnia 2011 07:27 w kategorii: pro
[ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Programiści .NET nie mogą narzekać na brak narzędzi i bibliotek wspomagających pisanie testów jednostkowych. Zanim przejdziemy jednak do zerkania w ich kierunku, zobaczymy jak można samemu, bez zewnętrznych zależności, rozpocząć pisanie testów. Testować będziemy taką banalną klaskę, której zadaniem jest obliczenie "ile złotych polskich dostanie polski hydraulik Waldek za przywiezione zza zachodniej granicy jełro... [More]

[ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Test jednostkowy to nic innego jak kod wykonujący inny kod w kontrolowanych warunkach. Jego zadaniem jest weryfikacja (bez ingerencji programisty), że testowany kod działa poprawnie. Robi to w sposób dość banalny: autor testu dostarcza dane wejściowe (input), test wykonuje pewne instrukcje i sprawdza, czy rezultat działań (output) zgodny jest z oczekiwaniami. W świecie idealnym każdy test bada jedną ścieżkę wykonania... [More]

[UT-0] Zapowiedź minicyklu o testach

8 sierpnia 2011 06:48 w kategorii: pro
Tagi: ,
Wożę się z tym tematem od nie wiem już kiedy i niejednokrotnie pisałem, że coś takiego zamierzam. Teraz akurat nadszedł taki okres, że mam czas na trochę więcej pisania, więc się mobilizuję i rozpoczynam wreszcie swój blogowy minicykl o testach (głównie jednostkowych) na platformę .NET. O testach napisałem już sporo notek... pora na więcej:). Od wielu miesięcy spisywałem kluczowe pojęcia i myśli, jakie mnie nachodziły podczas programowania i testowania. Kilka tygodni temu zebrałem to wszystko w... [More]

Nie piszemy testów jednostkowych, bo nie mamy czasu. Bo nie umiemy. Bo szef nie pozwala. Bo nikt nie powiedział, że trzeba je pisać. Bo to niepotrzebny kod. Bo... wymówek jest cała masa. Ale co wtedy? Wtedy trzeba aplikację przeklikiwać ręcznie. Przed każdym wdrożeniem, każdą wersją, ktoś musi przeorać miliony scenariuszy testowych. Ma tak zwaną zmułę. Manual testing is not just dumb, it's immoral Źródło: Robert C. Martin na konferencji NDC 2011 P.S. Tak jak w przypadku "Słowa...&qu... [More]

Ayende potwierdził przyjazd do Polski

5 sierpnia 2011 11:30 w kategorii: pro
No i stało się. Tak jak pisałem wcześniej, Ayende rozważał przeprowadzenie w Polsce swojego kursu o NHibernate. Dzięki dużemu odzewowi polskiej dev-społeczności na jego blogu pojawiło się ogłoszenie z datą kursu i linkiem do rejestracji. Nie pozostało mi nic innego jak zachęcić do wiercenia dziur w brzuchach szefostwa o sfinansowanie tego przedsięwzięcia:). Taka okazja pewnie się nieprędko powtórzy, a śmiem twierdzić, że Ayende jest najbardziej kompetentną osobą na świecie jeśli chodzi o NH. M... [More]

Ciekawostka: jak uzyskać RouteData z czystego URLa? Nie taka prosta sprawa... Ale najpierw: po co? Tutaj odpowiedź banalna: aby umożliwić wykorzystanie opisanego niedawno mechanizmu w sytuacji, gdy mamy całą strukturę menu zdefiniowaną na zewnątrz aplikacji (np. w bazie danych). Struktura taka mogłaby zawierać wygodne pary kontroler/akcja (+ew. area) i wtedy nie ma problemu, ale jeśli jest inaczej - to trzeba się uciec do tematu niniejszego posta. Przykład wykorzystania docelowego rozwiązania:... [More]