it-swarm-eu.dev

Jaké jsou nejlepší zdroje pro učení TDD?

Chci se naučit (a ovládat) TDD. Jaké jsou nejlepší:

  • knihy
  • webové stránky
  • videa
  • seznam cvičení
  • osobní slova moudrosti

pro učení, ocenění a používání TDD?

27
Eric

Osobně jsem zjistil, že čtení eseje JUnit nebo dvou zdůrazňujících, že „píšete test před kódem“, stačilo, abych začal.

Nejdůležitější část při učení této technologie je napsat spoustu kódu založeného na test, protože musíte změnit některé z nejzákladnějších způsobů, jak si myslíte o psaní kódu. Věci jako:

  • Zápis testu před kódem vás přiměje vymyslet si, jak budete kód vyvolat a získat výsledek zpět. To znamená, že nejprve navrhnete API na základě toho, jak jej budete používat. Výsledkem je často lepší API.
  • Váš styl kódování se změní, protože budete muset myslet modulárněji, abyste mohli testovat části kódu místo celé věci.
  • Rovněž se dostanete do bodu, kdy budete moci s jistotou vytáhnout hlavní kus a vložit nový kus místo toho, aby se choval stejně, protože váš test vyhovuje. Udělal jsem to nedávno s knihovnou pro analýzu data, protože originál byl příliš shovívavý.

Nejlepší místo, kde začít s malými, jsou vaše obslužné programy. Až příště budete potřebovat, pak stačí navrhnout, že nejprve s testy napíšete spoustu testů pokrývajících všechny vaše oficiální použití (včetně toho, co by se mělo stát s předáním nulových hodnot atd.), A když jsou implementovány všechny případy použití, měli byste být schopni používat přímo ve vašem kódu a buďte si jisti, že to funguje podle očekávání.

Je to také moje zkušenost, že dobré testy mohou dělat další práci jako dokumentaci, protože máte hodně velmi stručného kódu, který přesně říká, jak se kód chová v různých situacích, což lze snadno dokázat jako správné (zelený pruh). Při pečlivých komentářích to nechápete mnohem lépe.

Pro Java jUnit verze 4 je opravdu pěkná).

18
user1249

Kromě některých již zmíněných knih mohu doporučit Rostoucí objektově orientovaný software vedený testy . Ještě jsem to nedokončil, ale je to hodné čtení, včetně příběhu celého, realistického projektu TDD, nejen zjednodušených příkladů kódu.

8
Péter Török

Podle mého názoru TDD je více o tom, jak kód otestovat, než psát testy.

Určitě můžete napsat kód před kódováním, ale celý důvod, proč je test napsán, je proto, že můžete kódovat - což vám nezabrání v psaní kódu, který je těžko testovat.

Podívejte se na to, abyste získali lepší představu o tom, co mám na mysli: My Unified Theory Theory of Bugs

Pokud vás tento koncept zajímá a chcete se dozvědět více, jen okomentujte - a ukážu vás ve směru nahrané prezentace na toto téma od Googlu.

UPDATE:

Jak napsat čistý, testovatelný kód

Miško Hevery Prezentace (Autor GoogleTechTalks ) V Google v NYC a sponzorováno skupinou Engineering Productivity společnosti Google

8
blunders

Četl jsem dvě knihy:

Test řízený vývoj: podle příklad Kent Beck a

nit Test Frameworks Paul Hamil

Kniha Beck je dobře hodnocená, ale nezačal jsem s testováním jednotek, dokud jsem nečetl „Unit Test Frameworks“. Dělám nějaké TDD, ale také přidávám testy na starší kód, který musím udržovat (když můžu).

Úpravy: Také, jakmile na to narazíte, doporučuji použít ihned na aktuálním projektu. Pro mě to bylo, když nastalo skutečné učení, a myslím, že kniha „Unit Test Framework“ byla pro tento účel lepší referenční kniha. (Použil jsem nunit s C #).

4
vjones

I když to není primárně o TDD (i když se ho dotýká, stejně jako o návrhu na testovatelnost), Umění testování jednotek = je kniha, kterou bych doporučil, protože vás učí, jak psát dobré testy.

Konkrétněji to učí, jak vytvářet důvěryhodné, udržovatelné a čitelné testy. Myslím, že toto je nejdůležitější část knihy, mimo snad základy o testování jednotek a izolačních rámcích. Je zřejmé, že pokud se testy jednotky stanou bolestivým bodem nebo přidají tření k práci vývojáře, bude jakýkoli úspěch nebo přínos z nich omezen. Pokud člověk investuje čas a úsilí do vytváření testů, měl by být schopen z této investice získat co největší návratnost.

4
Matt