Modest Programmer logo
Z moich poprzednich artykułów wiesz już, że testy automatyczne możemy podzielić między innymi na testy jednostkowe i testy integracyjne. Do testów jednostkowych wprowadziłem Cię już w ostatnich artykułach (jeżeli się z nimi jeszcze nie zapoznałeś, koniecznie to zrób). Teraz przyszła pora na testy integracyjne. W testach jednostkowych testujemy pojedyncze jednostki, bez zewnętrznych zależności. Może się okazać, że mamy mnóstwo testów jednostkowych, które są zielone, a w rzeczywistości w naszej aplikacji mogą być błędy. Możemy mieć błędy na przykład we wspomnianych wcześniej [...]
Dzisiaj poruszę bardzo ważny temat, bez którego znajomości, nie nauczysz się pisać dobrych testów jednostkowych. Jak przeczytałeś już w poprzednich artykułach, testy jednostkowe nie powinny dotykać zewnętrznych zasobów. Jak w takim razie testować logikę w metodach, które mają odwołanie do zasobów zewnętrznych? Trzeba użyć sztucznych obiektów, tak zwanych mocków. Co to jest mockowanie? Mockowanie, czyli naśladowanie czegoś, jakiegoś zachowania. W polskim tłumaczeniu można się spotkać z różnymi tłumaczeniami słowa mock, między innymi makieta, ja jednak będę używał po [...]
Nadszedł najwyższy czas na trochę praktyki. W poprzednich artykułach o testach jednostkowych było dużo teorii, w celu jej utrwalenia przejdziemy dzisiaj do praktyki. Pokaże Ci, jak mogą wyglądać testy jednostkowe w .NET. Przetestujemy dzisiaj słynny algorytm FizzBuzz. Słynny, ponieważ często na rozmowach kwalifikacyjnych rekruterzy proszą o jego zaimplementowanie :) Co to jest FizzBuzz? Jest to prosty algorytm, który na podstawie przekazanego argumentu zwraca odpowiednią wartość. Zasady są takie: -Jeżeli argument jest podzielny przez 3, zwraca Fizz. -Jeżeli argument jest [...]
W poprzednim artykule na blogu wprowadziłem Cię do testów automatycznych. Jeżeli jeszcze go nie czytałeś, koniecznie zapoznaj się z nim, zanim przejdziesz do tego artykułu. Testy jednostkowe (unit tests), są właśnie jednym z typów testów automatycznych. Czym są testy jednostkowe? Zacznijmy od teorii. Testy jednostkowe są to małe kawałki kodu, które służą do testowania innego kodu, czyli pojedynczych jednostek, to znaczy klas i metod. Jakie powinny być testy jednostkowe? #1 Powinny być wykonywane w izolacji bez zewnętrznych zależności. Testy jednostkowe wykonywane są w izolacji bez [...]
Testy automatyczne, czyli kod, który testuje inny kawałek kodu. Jak sama nazwa wskazuje, są to testy automatyczne, dzięki nim możemy testować nasze aplikacje często i szybko - chcąc przetestować jakąś funkcjonalność w naszej aplikacji, nie musimy jej nawet uruchamiać. Jeżeli mamy kod na przykład do skomplikowanych obliczeń, to możemy go przetestować w sposób manualny, czyli poprzez uruchomienie aplikacji, zalogowanie się, przejście do odpowiedniej zakładki gdzie wykonywane są obliczenia, następnie musimy wypełnić formularz i kliknąć odpowiedni przycisk - dopiero wtedy sprawdzimy wynik. Taki sam zabieg trzeba przeprowadzić [...]
14 stycznia 2020
Każdy programista w swojej karierze ma różne etapy. Zazwyczaj początkujący programiści starają się pisać swoje aplikacji, w taki sposób, aby spełniały wszystkie wymagania, nie zważając na to, w jaki sposób piszą swój kod. Z czasem, gdy rozwijane są kolejne programy, zdobywamy doświadczenie, mamy do czynienia również z jakimś starym, zastanym kodem - przychodzą refleksję. Widzimy, że kod, który został wcześniej napisany, jest ciężki do utrzymywania. Każde kolejne w nim zmiany są coraz trudniejsze do wprowadzenia. Zastanawiamy się jak to zmienić, jak pisać lepszy, czystszy kod, tak [...]
30 grudnia 2019
Pora na rozszyfrowanie ostatniej, ale zdecydowanie nie najmniej ważnej litery SOLID, to znaczy D jak Dependency Inversion Principle, czyli Zasadę Odwrócenia Zależności. Zasada ta mówi o tym, że: -Moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. I jedne, i drugie powinny zależeć od abstrakcji. -Abstrakcje nie powinny zależeć od szczegółów. To szczegóły powinny zależeć od abstrakcji. Systemy, które piszemy, powinny odnosić się do abstrakcji (poprzez zastosowanie interfejsów lub klas abstrakcyjnych), a nie konkretnych elementów. Dzięki stosowaniu się do [...]
17 grudnia 2019
Kontynuując serię artykułów o SOLID, dzisiaj nadszedł czas na omówienie literki I, a dokładniej Interface Segregation Principle (w skrócie ISP). W polskim tłumaczeniu, jest to zasada segregacji interfejsów. Wydaje mi się, że z wszystkich reguł SOLID, właśnie omawiana w tym artykule - zasada segregacji interfejsów jest najprostsza do zrozumienia i zastosowania. Mówi ona o tym, że żaden klient nie powinien być zmuszany do polegania na metodach, z których nie korzysta. Nie powinniśmy stosować tłustych interfejsów (fat interfaces), mające deklarację metod, które niekoniecznie każdy z konsumentów [...]
3 grudnia 2019
Kolejną z zasad SOLID, dzięki której nasz kod będzie dobrej jakości jest zasada podstawień Liskov, czyli Liskov Substitution Principle (LSP) została opracowana w roku 1988, przez Amerykańską programistkę Barbarę Liskov. Po raz pierwszy zasada brzmiała tak: "Poszukujemy następującej właściwości podstawiania: Jeżeli dla każdego obiektu o1 typu S istnieje obiekt o2 typu T taki, że dla wszystkich programów P zdefiniowanych w kategoriach T zachowanie P pozostanie niezmienione, gdy o1 zostanie podstawione za o2, to S jest podtypem T." W sumie na tym mógłbym zakończyć ten artykuł, bo [...]
19 listopada 2019
Reguła Otwarte-Zamknięte, czyli Open-Closed Principle (OCP) została zdefiniowana w roku 1988 przez Bertranda Meyera. Mówi ona o tym, że element oprogramowania powinien być otwarty na rozbudowę, ale zamknięty na modyfikację. Dzięki zasadzie otwarte-zamknięte nasze systemy mogą być kompatybilne wstecz. Reguła ta jest szczególnie ważna, jeżeli chcemy tworzyć systemy, które będą miały więcej niż jedną wersję [...]

Wyszukiwarka

© Copyright 2020 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Polityka prywatności. Design by Kazimierz Szpin