tag:blogger.com,1999:blog-3408745507091232422.post128898321084806096..comments2023-03-05T06:57:23.320+01:00Comments on Robert Dresler: Jak nepsat jednotkové testyRobert Dreslerhttp://www.blogger.com/profile/16401744220939465418noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-3408745507091232422.post-28783102441104924522012-10-07T23:36:49.103+02:002012-10-07T23:36:49.103+02:00Nedávno jsem narazil na hezký citát na toto téma:
...Nedávno jsem narazil na hezký citát na toto téma:<br />Experience teaches patterns that tend to work. Not to be confused with "the only patterns that work" or "patterns that always work". -- Kent Beck<br /><br />Každé dogma je z principu špatné. Všechny patterny/anti-patterny jsou jen zjednodušené příklady řešení, která obvykle fungují. Nikdy je nesmíme zobecnit na všechny případy (a jejich různé kontexty), protože ve všech případech prostě fungovat nemohou - množina různých kontextů použití příliš velká na to aby se dala redukovat na jednoduchý vzor.<br />Martin "Mystik" Jonášhttps://twitter.com/m_jonas_mystiknoreply@blogger.comtag:blogger.com,1999:blog-3408745507091232422.post-91955460633572408862012-05-19T07:51:11.685+02:002012-05-19T07:51:11.685+02:00Děkuji za pěkný komentář a doplnění problematiky. ...Děkuji za pěkný komentář a doplnění problematiky. <br /><br />Líbí se mi Váš nedogmatický přístup. Vzory a antivzory jsou pokusy vnést pravidla a řád do složitého světa vývoje software. Míra dodržování těchto pravidel souvisí s úrovní zkušeností z praxe. Pro nováčky to mohou být dogmata. Zkušený vývojář ví, že pro konečný úspěch projektu je někdy potřeba z některých pravidel slevit. Jeho vnímání vzorů a anitivzorů je flexibilnější.Robert Dreslerhttps://www.blogger.com/profile/16401744220939465418noreply@blogger.comtag:blogger.com,1999:blog-3408745507091232422.post-75026061118309260042012-05-02T10:15:31.894+02:002012-05-02T10:15:31.894+02:00Děkuju za super článek.
Mám tam pár maličkostí, k...Děkuju za super článek.<br /><br />Mám tam pár maličkostí, kdy některé situace nemusí být považovány za anti-pattern.<br /><br />Imitátorna - v určitých situacích to jinak, než spoustou mocků, udělat prostě nejde. Typicky controllery pracují se spoustou objektů (request, response, flashMessenger, modely, view, ACL) a přitom to žádné god objekty nejsou (u jiných možná, u mě určitě ne). Tam nezbývá než buď nasadit až akceptační testy, nebo se smířit se spoustou mocků.<br /><br />Inspektor - inspektor je ukázkou typického white-box testování. Zastánci black-box (bez znalosti vnitřní implementace) označí za anti-pattern to, co zastánci white-box za pattern a stejně tak zastánci budou definovat nějaký pattern dummy-blind-test, kdy test testuje a nic o objektu neví. Sám jsem zastáncem black-box (když člověk dělá TDD, ani jinak nemůže), ale fanatismus mě už opustil. Občas, když se v nějaké třídě chyby často opakují, přepíšu její testy se znalostí vnitřní implementace (typický Inspektor) a díky tomu danou třídu otestuju mnohem líp a problémy obvykle odstraním.<br /><br />Podřadní občané - jen bych byl opatrný na považování duplicit v testech za něco špatného. Test je "příklad použití", jako takový slouží i jako dokumentace a "vypráví příběh objektu". Tak je vhodné, aby bylo možné ten příklad v testu snadno sledovat (tzn. nedelegovat slepě do jiných objektů, pokud se nějaký kód opakuje ve více testech). Všude jinde se samozřejmě duplicitnímu kódu bráním.<br /><br />Jinak ještě jednou díky, ostatní kroky opravdu považuju za anti-patterny, které se ale naštěstí moc nedějí.<br /><br />Za sebe bych přidal ještě anipattern "svázání se systémem", kdy lidé do testů píšou přímo cesty typu "C:\web\tests\testx.txt".Jiří Kneslhttp://www.knesl.comnoreply@blogger.com