Lista artykułów

Zwięzła obsługa wyjątków z Enterprise Library

Po dość długiej przerwie urlopowej, o której pewnie (choćby sam dla siebie w przyszłości) coś skrobnę, ponownie istnieję dla świata. Do mocków wrócę wkrótce, póki co – coś z zupełnie innej beczki. Znajomość Enterprise Library, bądź szpanersko EntLiba, była kiedyś wyznacznikiem "döjrzałego programisty .NET". Wydaje mi się że teraz już tak nie jest, a to [...]

Konfiguracja zachowania metod dla stubów

Po poprzednim odcinku potrafimy już dowolnie weryfikować i konfigurować wartości parametrów dla metod. Dzisiaj z kolei poustawiamy akcje, które mają się w momencie wywołania metod wykonać. Jest to czynność zdecydowanie prostsza, ponieważ właściwie wszystko mamy w Intellisense. Zobaczmy: Zwracana wartość Najprostsza możliwa konfiguracja to ustawienie wartości zwracanej przez metodę. Obiekt implementujący interfejs IMethodOptions zwracany przez [...]

Oto liczby z jutrzejszego dużego lotka:… Ciao!

Jakiś czas temu na blogu Polishwords Tomasz Smykowski wspomniał o interesującej inicjatywie. Inicjatywie, którą można określić jako Google z ludzką twarzą, Google z krwi, mięcha i kości. Google z poczuciem humoru i (nie sztuczną!) inteligencją. Od początku istnienia bloga nie zdarzyło mi się jeszcze opisywać tu żadnej witryny internetowej, ale tym razem, w ramach wyjątku [...]

Weryfikacja parametrów metod w mock objects

Dość sporo teorii mamy za sobą, nadeszła więc pora na praktyczne przykłady. Tym razem spojrzymy na konfigurację zachowania stubów w zależności od parametrów przekazywanych do ich metod (oraz analizę wartości przekazanych do mocków przez testowane obiekty, co jest scenariuszem bardzo podobnym technicznie). Konkretne wartości W poniższym przypadku konfigurujemy zachowanie authenticationService tylko dla jednej pary parametrów [...]

Sposoby pisania testów z mockami: Expectations vs Record/Replay vs Arrange-Act-Assert

Zgłębiając arkana tworzenia testów jednostkowych z wykorzystaniem mock objects możemy natknąć się na trzy szkoły/sposoby pisania kodu. Zwykle możliwe jest zastosowanie więcej niż jednego podejścia za pomocą danej biblioteki. Wszystkie jednak charakteryzują się podobnymi "etapami": musimy stworzyć środowisko testowe, wykonać testowane operacje oraz sprawdzić ich poprawność. Różnice polegają na składni oferowanej przez framework oraz niejawnych [...]

Linkowanie repozytoriów: svn externals

Chyba każda firma ma zestaw własnych bibliotek czy konfiguracji pomagających tworzyć oprogramowanie w ten "jedyny właściwy", wymyślony przez kogoś ważnego sposób. Narzędzia te wykorzystywane są przez wszystkie tworzone projekty oraz nieustannie rozwijane wraz z ewolucją wymagań czy zmianami na jakimś ważnym stanowisku :). Ale jak dopilnować, żeby nie mnożyły się identyczne (a z czasem oczywiście [...]

Dynamic Mock vs Strict Mock vs Stub

Zapoznając się z tematyką testów jednostkowych napotykamy podział mocków na trzy grupy: Dynamic Mock, Strict Mock oraz Stub. Dziś pora na poruszenie tego tematu wraz z prezentacją jak je wykorzystać w Rhino Mocks. Stub Stub jest niczym innym jak głupią i najprostszą implementacją zadanego interfejsu. Nie możemy go w żaden sposób przetestować, nie możemy sprawdzić [...]

Wybór mock-object framework

Przed rozpoczęciem wykorzystywania mocków w swoim projekcie musimy zdecydować się z jakiego wspomagacza skorzystamy. Wiemy jedno: nie chcemy tworzyć mocków ręcznie (jak zostało to przedstawione tutaj). Zobaczmy więc co nam, programistom .NET, oferuje w tym zakresie wszechposiadający, uzależniający i niczym tlen niezastąpiony INTERNET. Nie jest moim zamierzeniem dokładna prezentacja i porównanie dostępnych rozwiązań – rzucę [...]

Generator wartości dla testów jednostkowych

Pisząc testy jednostkowe często musimy brać skądś testowe wartości, których wykorzystanie będziemy następnie weryfikować. Przy okazji ostatniego posta mieliśmy takie linijki: 1: string userName = "testUserName"; 2: string password = "testPassword"; Łatwo jednak sobie wyobrazić ile takich miejsc może pojawić się w skali całego projektu. Tysiące! I czy będzie się komuś chciało nadawać każdej zmiennej [...]

Mock Objects – pierwszy test krok po kroku

W poprzednim poście zapoznaliśmy się z pojęciem "mock". Dzisiaj krok po kroku napiszemy pierwszy test jednostkowy z wykorzystaniem ASP.NET MVC, nUnit oraz RhinoMocks. Do dzieła. 1) Tworzymy projekt ASP.NET MVC Z odpowiedniej strony ściągamy instalator i… instalujemy. W VS wchodzimy w okno tworzenia nowego projektu i w sekcji Web wybieramy aplikację ASP.NET MVC. Po podaniu [...]

Kolejny CodeCamp w Krakowie – i ty możesz pomóc

Społecznościowe cyborgi z Krakowa, czyli Krakowska Grupa Developerów .NET (KGD), wpadły na pomysł wstrzelenia się pomiędzy dwie duże konferencje programistyczne europejskiego formatu i skorzystania z kilkudniowej przerwy między nimi. Co mają robić podczas owej przerwy światowej sławy prelegenci występujący na obu tych wydarzeniach? Oczywiście: zawitać do Krakowa:). Żeby nie przedłużać, podlinkuję ogłoszenie i apel organizatorów [...]

Testy jednostkowe z wykorzystaniem mocków – wstęp

To co teraz czytacie jest początkiem serii postów o tworzeniu testów jednostkowych z użyciem mocków (btw: zna ktoś polskie tłumaczenie tego słowa?). Jak na początek przystało – dziś krótkie wprowadzenie. Testy jednostkowe badające poprawność zależności i integracji na poziomie pojedynczych klas wykorzystują specjalnie spreparowane, proste i na swój sposób "głupie" implementacje wymaganych przez dany komponent [...]

Goodbye Zine. Powrót na stare śmieci.

Po kilkumiesięcznych (sic!) rozważaniach postanowiłem, że uciekam z Zine’a. Od tej chwili wracam na stare śmieci. Reaktywuję możliwość dodawania komentarzy na swoim prywatnym blogu, nowe posty będą pojawiać się również tylko tam. Zainteresowanych zachęcam do regularnego odwiedzania. Godne uwagi adresy: the blog itself RSS dla postów RSS dla komentarzy Nadal będzie ciekawie (o ile było [...]

Alternatywa dla Convert.ChangeType()

Drugi raz w ciągu kilku dni przytrafiły mi się kłopoty podczas wykorzystania metody Convert.ChangeType(). Scenariusz jest bardzo prostu: mam wartość pobraną skądś-tam (baza danych, http request czy cokolwiek innego) reprezentującą znany mi typ, jednak przechowywaną w postaci stringa. Wszystko śmigało jak trzeba dopóki traktowałem w ten sposób zwykłe liczby i daty. Jakiś czas temu wpadł [...]

Pantoflowo-aspektowe sko_dev_jarzenie

Niedawno podczas koleżeńskiej konserwacji wypłynął nam temat pantoflarstwa, czyli bezwarunkowej podległości osobnika płci męskiej pod swego żeńskiego w życiu partnera. Swoją Panią. I nieuchronnie już wówczas do głowy napłynęła mi myśl, jak taką sytuację można doskonale zamodelować przy użyciu PostSharp – godnego uwagi darmowego narzędzia do programowania aspektowego w .NET. Przysiadłem na chwilę, ściągnąłem Post#, [...]