Dziś w kursie TDD przyjrzymy się frameworkowi do tworzenia atrap, konkurencyjnemu do wcześniej poznanego Moq. FakeItEasy, bo o nim mowa, jest darmowy, łatwy w nauce, ma wsparcie dla C# i VB.NET, różni się od innych bibliotek nie tylko semantyką, ale także nieco innym podejściem do tematu tworzenia atrap.
W tym artykule przyjrzymy się ciut bardziej zaawansowanym technikom tworzenia atrap przy pomocy Moq: argument matching, verify, callback. Wszystkie przykłady zostaną zaprezentowane przy użyciu Moq, jednak konkurencyjne frameworki w zakresie niewiele się różnią w zakresie tych technik.
Sztuka programowania 3252 dni, 18 godzin, 5 minut temu 94 źrodło rozwiń
Moq to najpopularniejszy framework do tworzenia atrap w .NET. W tej części kursu poznamy jego składnię i podstawowe możliwości.
Sztuka programowania 3259 dni, 19 godzin, 47 minut temu 140 źrodło rozwiń
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.
Sztuka programowania 3265 dni, 3 godziny, 14 minut temu 164 ź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.
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...
Jeżeli chcielibyście w projekcie Universal App tworzyć testy jednostkowe to po pierwsze oprócz MSTest niczego innego nie użyjecie. Jeżeli chcielibyście użyć znanego Wam framework do moqowania obiektów, zapomnijcie. Do takich konkluzji doszedłem podczas mojej kolejnej “zabawy” z projektem, który mam w głowie i powoli przenoszę go do świata żywego (nie ważne) Ale po kolei. Ważną rzeczą, na którą musicie zwrócić uwagę przy dodawaniu projektu unit test do to wybranie Unit Test App (Universal Windows) Tr...
Sztuka programowania 3314 dni, 3 minuty temu 155 źrodło rozwiń
Last month I had a pleasure to speak at ConnectJS and All Things Open conferences. ConnectJS ConnectJS was not only about JavaScript, but about web development in general. All Things Open is one of the largest Open Source conferences in the USA.
During this year’s Testwarez 2015, we had opportunity to lead a panel discussion about testing in agile teams.
Cytatem Youtubowego kucharza (Food Emperor) polecam wszystkim narzędzie wniesione do zespołu, w którym pracuję, przez nowego kolegę Sebastiana...
Sztuka programowania 3330 dni, 8 godzin, 21 minut temu 424 ź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ć.
Sztuka programowania 3338 dni, 4 godziny, 21 minut temu 214 ź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!
Sztuka programowania 3377 dni, 6 godzin, 29 minut temu 331 źrodło rozwiń
Last Saturday I had a pleasure to speak at Seattle Code Camp. It was an amazing event, which was free. There were over 50 talks, 500 attendees, and raffle with many prizes, e.g., Microsoft Surface Pro 3! Check out videos, code, and slides from my talks!
On July 1st I had a pleasure to speak at Seattle Node.js meetup about unit testing and Test Driven Development with Angular.js and Node.js, using TypeScript. In this talk I gave an overview of JavaScript testing frameworks, and tools. I also demonstrated how TypeScript can strengthen your tests by adding free unit tests (type checking) thanks to strong typing.
TDD / Unit Testing big list of learning resources from basics to advanced topics Posted on by Michal Franc One of my fellow dev friends asked about a set of links, books, screen-casts related to TDD / Unit Testing. He wants to expand his knowledge. Instead of sending him a private message, I thought that it would be great to just create a blog post with all the resources, I used in the past to learn.Basics Presentation - Video: Unit Testing and TDD – Why You Should Care and How to Make It Happen By R...
Sztuka programowania 3505 dni, 22 godziny, 8 minut temu 111 ź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...
Sztuka programowania 3545 dni, 9 godzin, 4 minuty temu 123 ź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
Sztuka programowania 3545 dni, 9 godzin, 4 minuty temu 188 ź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).
Sztuka programowania 3578 dni, 6 godzin, 10 minut temu 171 ź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.
Sztuka programowania 3593 dni, 7 godzin, 34 minuty temu 170 źrodło rozwiń
Agile Principles, Patterns, and Practices in C# by Uncle Bob is the best book about modern Software Development I have ever read. First section (chapters 1-6) is an Overview of Agile, Extreme Programming (XP), and TDD. Very good introduction to modern software development. Chapter 6. shows all these techniques by example, by creating “The Bowling Game” application...
Sztuka programowania 3608 dni, 3 godziny, 14 minut temu 247 źrodło rozwiń