~ MJ Jasmine – behaviour driven develeopment framework służący do testowania kodu napisanego w javascripcie: Jasmine
Często logika zawarta w procedurach jest dość skomplikowana. W zależności od projektu, może okazać się, że potrzebujemy testów jednostkowych. Dzięki tSQLt możemy testować tSQL w analogiczny sposób do nUnit+moq, czyli:Dane po wykonaniu testu są usuwane. Każdy test jest wykonywany w transakcji. Nie musimy się zatem martwić, że testując coś będziemy zaśmiecać bazę danych.Każdy element może być odizolowany, czyli możemy stworzyć mock dla tabeli, procedury lu...
Bazy danych i XML 3226 dni, 4 godziny, 12 minut temu 211 źrodło rozwiń
IntelliTest to wewnętrzna funkcjonalność Visual Studio (Enterprise 2015), która służy do generowania tabeli danych wejściowych oraz zestawu testów jednostkowych. Dla danej metody generowane są dane wejściowe, w oparciu których mogą zostać wygenerowane testy jednostkowe. Przypadki testowe tworzone są w oparciu o analizę każdego skoku warunkowego (conditional branch). Co więcej, tabela przypadków testowych zawi...
W dzisiejszym poście pokażę bibliotekę Noda Time. Generalnie jest ona stworzona, aby zastąpić DateTime, który często powoduje problemy. Dzisiaj jednak, chciałbym pokazać Noda Time na przykładzie testów jednostkowym, bo to jest miejsce, gdzie DateTime po prostu nie nadaje się do użycia (przynajmniej bezpośrednio).
Sztuka programowania 3533 dni, 9 godzin temu 148 źrodło rozwiń
W następnym poście mam zamiar napisać o SpecsFor, kolejnym framework’u ułatwiającym pisanie testów BDD. Najpierw jednak chciałbym przedstawić expectedObjects oraz Should Assertion Library, które są składowymi SpecsFlow. Wszystkie z wymienionych bibliotek można zainstalować przez NuGet. Should Assertion Library to mała biblioteka ułatwiająca asercje danych. W standardowych unit testach zwykle piszemy coś w stylu:Assert.IsTrue(value); Assert.IsNull(value); Assert.AreEqual(actualValue,expectedValue) Jes...
Nigdy jakoś specjalnie nie lubiłem testów jednostkowych jednak każdy porządny programista dobrze wie, że to ważny aspekt wytwarzania oprogramowania. Dzięki testom jesteśmy w stanie bezpiecznie dokonywać zmian w kodzie właściwym – jeśli w wyniku refaktoryzacji zmienimy sposób działania aplikacji, testy przestaną „przechodzić”, wiemy więc od razu, że coś jest nie tak. ...
Sztuka programowania 3886 dni, 8 godzin, 2 minuty temu 199 źrodło rozwiń
Piękno ASP.NET MVC polega na tym, że prawie wszystko można wymienić, zamienić, przetestować… tyle tylko, że Ci goście z Microsoftu uwielbiają internal-e. Wszysko co się da dają jako internal a może nawet więcej. No i tyle byłoby z testowalności, ale do rzeczy. Piszę własny ControllerFactory ale nie zupełnie od zera. Chcę standardowej funkcjonalności ale też chcę ładować jak pluginy z luźnych dll-ek. Nic prostszego, wystarczy trochę zmodyfikować DefaultControllerFactory i jeśli standardowe...
Po ostatniej prezentacji dotyczącej Behaviour-Driven Development (BDD) postanowiliśmy przedstawić tą tematykę w bardziej przystępnej dla internautów formie. Stąd też poniższy wpis, gdzie zostaną przedstawione podstawowe założenia BDD, a już wkrótce pojawi się kolejny – opisujący zastosowanie tej metodyki w aplikacji ASP.NET MVC.
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ą bazę danych. Albo czy komunikacja z systemem plików przebiega tak jak powinna. Lub, co ...
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"...
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 jednej metody. Czy jednak jedyną rolą testów jednostkowych jest sprawdzenie działania ...
Architektura 4871 dni, 23 godziny, 31 minut temu 386 źrodło rozwiń
Artykuł dla osób, które dopiero zaczynają z testami jednostkowymi. Wprowadzenie, trochę teorii i best practises: http://msdn.microsoft.com/pl-pl/library/testy-jednostkowe-w-visual-studio
blackfoot.pl, autor:Ostatnio wpadła mi w ręce książka The Art of Unit Testing: with Examples in .NET autorstwa Roy’a Osherove’a. Muszę przyznać, że mam nieco mieszane uczucia po jej przeczytaniu. Minusy: Książka liczy około 280 stron, ale czytając ją miałem wrażenie, że ta liczba jest mocno naciągnięta – olbrzymie marginesy, bardzo szeroka czcionka, dużo niezagospodarowanego miejsca itp. Samym formatowaniem można by było zaoszczędzić przynajmniej kilkadziesiąt stron – ile drzew mogłoby wciąż rosnąć! Pie...
Wczoraj miałem przyjemność poprowadzić sesję o testach jednostkowych na spotkaniu studenckiej grupy .NET na PB. Już dobre półtora roku temu postanowiłem sobie, że takie wystąpienia to rzecz nie dla mnie i że więcej nie będę próbował sprawdzać się w ten sposób. Jednak gdy dostałem zaproszenie od Justyny Iwanowskiej, białostockiej SC, zdecydowałem "a co mi tam". Jednocześnie dziękuję za owo zaproszenie:).
Pisać testy jednostkowe do wszystkiego? Celować w 100% unit-test-code-coverage? Stosować TDD dla każdego rodzaju kodu? Na te pytania bardzo łatwo znaleźć w internecie odpowiedź i brzmi ona: TAK. Niestety nie jest to odpowiedź prawidłowa. Czasem lepiej testu nie napisać, niż go napisać. Czasem lepiej test skasować, niż go po raz dziesiąty poprawiać po zmianie w kodzie.
Testy jednostkowe to proste testy pozwalające na sprawdzanie działania aplikacji na poziomie klas i metod. Ich celem jest wspomaganie pracy programisty. Testów jednostkowych nie należy traktować jak testów aplikacji, które należą do zupełnie innej kategorii. Ciekawą koncepcją jest TDD czyli test driven development. Wg. niej najpierw tworzone zostają testy aby dopiero później stworzyć kod. Dzięki takiemu podejściu zmuszamy umysł do przemyślenia kodu zanim ten zostanie stworzony. Największa moc drzemiąca ...
W poprzednich wpisach kilkukrotnie pisaliśmy o potrzebie stosowania testów jednostkowych jaką na szczęście wymusza na nas podporządkowanie się zasadom extreme programmingu. Wiele artykyłów poświęconych Test-driven development’owi pojawi się zapewne na naszym blogu w przeciągu kolejnych miesięcy. Warto więc opisać także podstawy korzystania z biblioteki do testów jednostkowych której używamy, czyli NUnit’a. Aby rozpocząć pracę z tym jakże użytecznym narzędziem pobieramy go z odpowiedniej strony, w wersji...
TestDriven.Net jest pluginem do Visual Studio pozwalającym na wygodne uruchamianie testów jednostkowych. Niby nic, a bardzo ułatwia i przyśpiesza pracę. Wtyczka współpracuje z najpopularniejszymi narzędziami do testów jednostkowych, takich ...
Oglądając screencasty z Summer Of NHibernate, zacząłem poznawanie NHibernate'a i chciałem wypróbować świeżo zdobytą wiedzę w praktyce, jednak po drodze natrafiłem na kilka trudności i problemów. Dlatego też w tym poście chciałbym napisać jak sobie to wszystko poukładałem, żeby działało tak jakbym sobie tego życzył. SQLiteNa początek trzeba zaopatrzyć się w dotnetowego wrappera na bibliotekę SQLite (pobranie i zainstalowanie samej biblioteki uważam za krok oczywisty i nie wymagający komentarza). W moim pr...
Niekiedy test jednostkowy sprawdza poprawność jakiegoś skomplikowanego algorytmu bądź parsera tekstu bądź czegokolwiek, co wymaga znacznych ilości danych. Zamiast umieszczać te dane w kodzie, niejednokrotnie wygodniej jest po prostu wrzucić je do pliku, plik dodać do projektu i ustawić jego właściwość "Copy to Output Directory" na Always.