MVP, MSSQL, .NET
Generalnie moment, w którym natkniemy się na potrzebę przetestowania testami jednostkowymi klasy abstrakcyjnej powinien być momentem okrzyku: "refactoring czas zacząć!". Takie coś teoretycznie nie powinno mieć miejsca; testuje się raczej funkcjonalność faktycznie wykorzystywaną w systemie, a więc bardziej klasy z niej dziedziczące. Odpowiednia hierarchia klas uzupełniona odpowiednią hierarchią testów jednostkowych rozwiązuje problem. Ale wiadomo – [...]
W ramach utrzymywania pozorów dbania o tężyznę fizyczną udaję się dwa razy w tygodniu na basen, na 7 rano. Jakież było dziś moje zaskoczenie, gdy po wykonaniu założonego planu wodnego przeniosłem swoje ciało z miniakwenu pod natryski i zastałem tam babę z mopem szorującą ściany pryszniców! Czy taka czynność nie powinna być załatwiona PRZED otwarciem [...]
Może wszyscy o tym wiedzą i tylko ja byłem tak prostacko nieoświecony, ale niedawno znalazłem w Visual Studio funkcjonalność, która, jak się okazało, była tam od wielu lat. A ja, ślepiec nad ślepcami i ignorant nad ignorantami, podniecam się nią dopiero teraz. Podniecacz nad podniecaczami… Prędko, prędko baśń się baje, nie tak prędko… okienko "Add [...]
Testowanie obsługi zdarzeń oraz faktu ich wywołania jest niekiedy równie ważne co przetestowanie każdej innej integracji pomiędzy dwoma obiektami. Scenariusz jest na tyle specyficzny, że poświęcę mu osobną notkę. Wywoływanie zdarzeń Zapomnijmy na razie o maglowanym przez ostatnie kilka wpisów kontrolerze i spójrzmy na inną sytuację. Wyobraźmy sobie, że mamy w systemie klasę odpowiedzialną za [...]
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 [...]
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 [...]
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 [...]
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 [...]
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 [...]
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 [...]
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ć [...]
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ę [...]
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 [...]
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 [...]
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 [...]
MVP, MSSQL, .NET
Programista-pasjonat. Człowiek od wszystkiego związanego z programowaniem. Autor bestsellerowej książki “Zawód: Programista“.
Od 2008 posiadacz tytułu Microsoft MVP (Most Valuable Professional) w kategorii .NET.
Od 2005 Microsoft Certified Professional.