Komentáře k článku
Knihovna TestIt pro PHPUnit

Píšete jednotkové testy v PHPUnitu? A také vás obtěžuje zdlouhavá a upovídaná konstrukce $this->getMock()—>expects()->method()—>with()->will()? Právě pro vás je tu nadstavbová knihovna TestIt, která tuto konstrukci obchází a zároveň rozšiřuje možnosti mockování závislostí v PHPUnitu.
dobre ty, upravujem composer a pridavam dalsi require ;) good work
Moooc složitý
Tohle je moc složitý a je tam moc bordelu okolo samotného kódu testu. Kdo to má psát… Koukni na PHPT, které se používá pro testování samotného PHP.
Testování?
protected function getPropertyFromTestSubject($name) //dobře se používá na asserty abychom zjistili, zda se objekt po volání testované metody nachází v očekávaném stavu
– testovat implementaci umíš parádně
expectDependencyCall() Například pokud bychom někam odesílali šifrovaná data, tak je velký rozdíl, pokud data nejdříve zašifrujeme a pak odešleme, a nebo nejdříve odešleme a pak teprve zašifrujeme.
– opravdu patří šifrování a odeslání patřilo do jedné třídy? proč se ty testy vlastně jmenují unit?
Tomuhle říkám takové pseudo testování. Sice pořád lepší než netestovat, ale … http://bit.ly/1gLiCie
Re: Testování?
„- opravdu patří šifrování a odeslání patřilo do jedné třídy? proč se ty testy vlastně jmenují unit?“
Za prvé, unit se jmenují proto, že se testuje jednotka, a jednotka nemusí být nutně jedna třída.
Za druhé, Proč by mělo být šifrování a odesílání v jedné třídě? Jedna třída šifruje, druhá třída odesílá data. Pak tam, ale musí být třetí třída, která data nejdřív zašifruje pomocí první třídy a pak odešle pomocí druhé třídy. Na tu třetí třídu test nenapíšeš? Nebo jak si to představuješ?
Re: Testování?
ad 1.: Já také neříkám, že se to má používat vždycky, já si jenom myslím, že se to může v určitých situacích hodit :-)
ad 2.: viz. komentář od @Jenda
Pěkný nápad
Hezká knihovna. S autorem se shoduji v nevýhodách PHPUnit a určitě se na knihovnu podívám. Zdá se, že by mi mohla pomoct. :-)
Mockery
Mockery mi prijde primocarejsi nez tahle knihovna
Re: Mockery
Neznám úplně do všech detailů chováni Mockery, ale jinak to oproti PHPUnitu není žádná změna v použítí. Stále musím v každém testu řešit instanci mocku, jeho konfiguraci a podobně. A to je přesně to, co nechci, v testu se chci soustředit už jenom na test a mocky mě v podstaté vůbec nezajímají.
Re: Mockery
Ok, tomu rozumim, otazka je jestli to je dobre nebo spatne :-)
Hlavni vyhodu Mockery vidim v logictejsi syntaxi nez PHPUnit, TestIt jsem nezkousel.
Re: Mockery
Mno já jsem usoudil, že je to špatně :-D
Phake je elegantnější
Osobně se mě nelíbí klasický způsob mockování v PhpUnit. Nicméně to z článku mě přijde jak parní mlátička, která se hodí na nějakou raketovou vědu.
Framework Phake je jednoduchý jak žebřík. Minimum zbytečností.
http://phake.digitalsandwich.com/docs/html/stubbing.html#basic-stubbing
Re: Phake je elegantnější
Ok, může být :-) Ale jediný pohled do zdrojového kódu Phake napoví, že je to v podstatě to samé s tím rozdílem, že to zachovává styl synaxe PHPUnitu, ale má to znovu napsané generování mocků.