Strona głównaUżytkownik

dariuszwozniak | użytkownik

dariuszwozniak
dariuszwozniak
1 742,45
151 dni, 18 godzin, 32 minuty temu
21 kwietnia, 2013
dotnetomaniak.pl

W części czternastej kursu Test-Driven Development omówimy technikę testowania zależności za pomocą atrap (jęz. ang. „mock”). Test jednostkowy z definicji testuje zachowanie w izolacji, a więc bez zależności zewnętrznych. Takimi zależnościami są najczęściej inne klasy lub interfejsy, które posiadają zachowanie.

Tagi: TDD
Dziel się z innymi:
Kurs TDD cz. 14: Testowanie zależności – atrapy obiektów | DariuszWoźniak .NET

Sztuka programowania 3018 dni, 14 godzin, 45 minut temu dariuszwozniak 162 źrodło rozwiń

Wzorzec projektowy „fluent interface” (polski odpowiednik… płynny interfejs…?) przyjął się w środowisku .NETowym bardzo dobrze. I słusznie! „Płynna syntaktyka” znacznie poprawia czytelność pisanego kodu. Jednym z sztandarowych przykładów jej użycia są asercje w testach.

Dziel się z innymi:
„Płynne asercje”, czyli jak ułatwić sobie życie korzystając z Fluent Assertions? | DARIUSZ WOZNIAK.NET

Narzędzia 3052 dni, 20 godzin, 27 minut temu dariuszwozniak 282 ź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...

Automatyczne generowanie testów jednostkowych: IntelliTest | DARIUSZ WOZNIAK.NET

Narzędzia 3061 dni, 18 godzin, 3 minuty temu dariuszwozniak 185 źrodło rozwiń

Postanowiłem kiedyś stworzyć, na własne potrzeby, spis narzędzi dla TDD dla .NET. Z czasem, lista rozrosła się do narzędzi nie tylko związanych z TDD, ale także z testami akceptacyjnymi i BDD. Dokończyłem ten spis o pozostałe rodzaje testów i opublikowałem na GitHubie, tak żeby można było łatwiej aktualizować.

Tagi: atdd, bdd, sbe, TDD
Dziel się z innymi:
Lista narzędzi i frameworków do testowania (TDD / BDD / ATDD / itd.) dla .NET | DARIUSZ WOZNIAK.NET

Sztuka programowania 3091 dni, 15 godzin, 53 minuty temu dariuszwozniak 213 źrodło rozwiń

Ciekawym pomysłem na wydajniejszą (tak, jeszcze większą! :)) pracę z kodem jest dodatek do ReSharpera o nazwie Postfix. Idea polega na uzupełnianiu kodu w oparciu o różne wzorce, tzw. postfix, które pojawiają się po napisaniu naszego kodu. Innymi słowy, jest to połączenie „surround templates” i resharperowego Quick Fix (Alt+Enter). Postfix uzupełniamy jednak klawiszem Tab.

Tagi: Resharper
Dziel się z innymi:
C# Pro Tip: ReSharper Postfix | DARIUSZ WOZNIAK.NET

Narzędzia 3129 dni, 9 godzin, 4 minuty temu dariuszwozniak 354 źrodło rozwiń

C# 5.0 wniósł wiele dobroci, m.in. obsługę wywołań asynchronicznych za pomocą słów kluczowych async i await. Rozwiązanie, ze względu na prostotę obsługi i skuteczność, cieszy się do dziś sporą popularnością. Jak testować wywołania asynchroniczne? Tego dowiemy się w tym odcinku!

Tagi: TDD
Dziel się z innymi:
Kurs TDD cz. 13: Testowanie wywołań asynchronicznych (async await) | DARIUSZ WOZNIAK.NET

Sztuka programowania 3130 dni, 18 godzin, 1 minutę temu dariuszwozniak 330 źrodło rozwiń

Rzecz być może dla niektórych mało istotna, dla niektórych w ogóle nie istotna, ale niezależnie od istotności sprawy – myślę, że warta wpisu na blogu. NUnit posiada dwa modele asercji:Classic Assert ModelConstraint-Based Assert Model (wprowadzony w wersji 2.4) Semantyka klasycznego modelu jest wszystkim dobrze znana: Assert.AreEqual(5, sum); Assert.AreSame(personA, personB); Assert.IsTrue(condition); As...

Tagi: TDD
Dziel się z innymi:
Kurs TDD cz. 12: Classic vs. Constraint Assert Model | DARIUSZ WOZNIAK.NET

Sztuka programowania 3298 dni, 20 godzin, 36 minut temu dariuszwozniak 122 źrodło rozwiń

Dzisiaj będzie o ludziach. Aż sam się dziwię, że taki post spod ręki mej wychodzi… ale jednak. Czy zdajesz sobie sprawę z tego, że robiąc COKOLWIEK ponad normę, jesteś źródłem wielkiej inspiracji? Tak, TY! Czy zdajesz sobie sprawę z tego, że wokół znajdziesz niewyczerpane studnie głębinowe motywacji, tylko czekające na odkrycie? Tak, przez CIEBIE!

Inspiruj i czerp inspirację...

Inne 3304 dni, 21 godzin, 40 minut temu rroszczyk 257 źrodło rozwiń

W niniejszym artykule przyjrzymy się w jaki sposób możemy przetestować klasy generyczne za pomocą funkcjonalności NUnita pod nazwą Generic Test Fixture. Dla przykładu, weźmy sobie metodę dodawania w generycznej klasie kalkulatora: public class GenericCalculator

Tagi: TDD
Dziel się z innymi:
Kurs TDD cz. 11: Testowanie klas generycznych | DARIUSZ WOZNIAK.NET

Sztuka programowania 3298 dni, 20 godzin, 36 minut temu dariuszwozniak 187 źrodło rozwiń

Doskonałym uzupełnieniem wpisów o testach parametryzowanych i kombinatorycznych jest omówienie tzw. „teorii”. Teoria jest specjalnym rodzajem testu, w którym weryfikujemy dane twierdzenie przy pomocy założeń (ang. assumptions).

Tagi: TDD
Dziel się z innymi:
Kurs TDD cz. 10: Teorie | DARIUSZ WOZNIAK.NET

Sztuka programowania 3331 dni, 17 godzin, 42 minuty temu dariuszwozniak 170 źrodło rozwiń

Naturalnym krokiem po omówieniu testów parametryzowanych jest przejście do testów kombinatorycznych i sekwencyjnych. Do dyspozycji mamy dwa atrybuty NUnita — [Combinatorial] oraz [Sequential]. Sprawa jest bardzo prosta, więc zrozumienie działania tych dwóch funkcjonalności nie przysporzy żadnych problemów.

Tagi: TDD
Dziel się z innymi:
Kurs TDD cz. 9: Testy kombinatoryczne i sekwencyjne | DARIUSZ WOZNIAK.NET

Sztuka programowania 3346 dni, 19 godzin, 6 minut temu dariuszwozniak 169 źrodło rozwiń

W C# istnieje mało znana składnia do inicjalizacji zagnieżdzonych obiektów (nested object initializer syntax). Na czym polega cała zabawa? Spójrzmy na kod, za pomocą którego inicjalizujemy zagnieżdżony obiekt: Rectangle rectangle = new Rectangle { P1 = { X = 0, Y = 1 }, P2 = { X = 2, Y = 3 } };

Dziel się z innymi:
C# Pro Tip: Nested object initializer syntax | DARIUSZ WOZNIAK.NET

Inne 3467 dni, 5 godzin, 48 minut temu dariuszwozniak 346 źrodło rozwiń

Temat testów parametryzowanych pojawił się przy okazji pisania naszego „drugiego” testu jednostkowego. Wtedy to skorzystaliśmy z atrybutu [TestCase] pozwalającym na zdefiniowanie zestawów wartości, które są przekazywane do metody testowej. Stosując atrybuty do testów parametryzowanych (m. in. TestCase, Values, Range, Random) ograniczamy liczbę naszych metod testowych i redukujemy ilość redundantnego kodu.

Tagi: C#, NUnit, TDD
Dziel się z innymi:
Kurs TDD cz. 8: Testy parametryzowane | DARIUSZ WOZNIAK.NET

Sztuka programowania 3472 dni, 14 godzin, 5 minut temu dariuszwozniak 239 źrodło rozwiń

W tej części kursu zajmiemy się pojęciem inicjalizacji i czyszczenia danych. Wielkiej filozofii tutaj nie ma; w NUnit działa to tak:Jeśli chcemy, aby jedna z metod uruchamiała się przed każdym uruchomieniem naszego testu, aby np. inicjalizować dane, nakładamy na nią atrybut [SetUp].Jeśli zechcemy, aby metoda uruchamiała się po każdym uruchomieniu testu w celu np. czyszczenia danych — nakładamy atrybut [TearDown]...

Tagi: NUnit, TDD
Dziel się z innymi:
Kurs TDD cz. 7: Inicjalizacja i czyszczenie danych (SetUp i TearDown) | DARIUSZ WOZNIAK.NET

Sztuka programowania 3671 dni, 14 godzin, 28 minut temu dariuszwozniak 142 źrodło rozwiń

W tej części opisane zostaną dobre i złe praktyki stosowane przy pisaniu testów jednostkowych. Co ciekawe, praktyki te odbiegają niekiedy od ogólnie przyjętych założeń i standardów kodowania. Przykładem może być zasada DRY—Don’t Repeat Yourself. W TDD kopiuj-wklej to niemal chleb powszedni; w TDD możemy stosować zasadę zgoła odwrotną—Do Repeat Yourself! Taka odrębność wynika z tego, że w kodzie testowym musimy zminimalizować prawdopodobieństwo pojawienia się błędu. Kod tes...

Tagi: TDD
Dziel się z innymi:
Kurs TDD część 6: Dobre i złe praktyki testów jednostkowych | DariuszWozniak.NET

Sztuka programowania 3796 dni, 7 godzin, 6 minut temu dariuszwozniak 405 źrodło rozwiń

W tej części omówię jak wykonać kilka prostych technik, tj. jak:zgrupować testy za pomocą atrybutu [TestCase],testować wyjątki,testować zdarzenia. Na tapetę idzie przykład dzielenia; chcemy napisać funkcjonalność i testy mając na uwadze, że:metoda Divide należy do klasy Calculator,metoda Divide przyjmuje dwa parametry wejściowe — obydwa typu int; zwracanym ...

Tagi: C#, NUnit, TDD
Dziel się z innymi:
Kurs TDD część 5: Nasz drugi test jednostkowy | DariuszWozniak.NET

Sztuka programowania 3919 dni, 17 godzin, 21 minut temu dariuszwozniak 162 źrodło rozwiń

W tej części cyklu stworzymy nasz pierwszy test jednostkowy. Przedstawię krok po kroku jak napisać i przetestować prostą funkcjonalność wedle zasad TDD. Opiszę tutaj szczegółowo wszystkie kroki, począwszy od tego jak dodać referencję do NUnita, a skończywszy na tym jak uruchomić test.

Tagi: C#, NUnit, TDD
Dziel się z innymi:
Kurs TDD część 4: Nasz pierwszy test jednostkowy | DariuszWozniak.NET

Sztuka programowania 3934 dni, 22 godziny, 52 minuty temu dariuszwozniak 239 źrodło rozwiń

Po wstępie i omówieniu różnic między testami jednostkowymi, a integracyjnymi, czas na omówienie jak strukturalnie powinien wyglądać wzorcowy test jednostkowy. Będzie to pewnie najkrótszy wpis tej serii, ale jednocześnie jeden z najważniejszych. Pozwoli bowiem na pierwszy kontakt z testem jednostkowym w praktyce.

Tagi: TDD
Dziel się z innymi:
Kurs TDD część 3: Struktura testu, czyli Act-Arrange-Assert | DariuszWozniak.NET

Sztuka programowania 3944 dni, 17 godzin, 31 minut temu dariuszwozniak 141 źrodło rozwiń

Garść cytatów w kontekście Test Driven Development. Można je wykorzystać przy różnych okazjach, np. przy tworzeniu prezentacji albo przy rodzinnych bankietach ;)

Tagi: TDD
Dziel się z innymi:
Cytaty o TDD | DariuszWozniak.NET

Inne 3947 dni, 22 godziny, 12 minut temu dariuszwozniak 199 źrodło rozwiń

Wprowadzenie Wzorce projektowe mają na celu rozwiązanie najczęściej spotykanych problemów związanych z pisaniem kodu. W przypadku warstwy prezentacji można wykorzystać m. in. następujące rozwiązania: MVC, MVP czy Model-View-ViewModel. Ze względu na mechanizm wiązań (binding), programistom WPF oraz Silverlight, polecany jest wzorzec MVVM – jest to technologia umożliwiająca bardzo łatwą implementację wzorca.K...

Tagi: MVVM
Dziel się z innymi:
Wprowadzenie do wzorca projektowego Model-View-ViewModel na przykładzie aplikacji WPF | MSDN (Polska)

Architektura 3967 dni, 5 godzin, 38 minut temu trismegista 554 źrodło rozwiń

1 2 3

Najaktywniejsi w tym miesiącu