Tvoji testovi, da bi bili kompletni, moraju da testiraju za sve upotrebne kombinacije magacina i svaki moguci odabrani alat. A ako testiras postupak ciscenja za svako moguce odabrano sredstvo to je isto kao da si testirao i parametrizovani metod za sve moguce ulazne parametre. Jel sad jasnije? Krateci testove ti si napravio pretpostavku kako ce magacin da izgleda i ako on ne izgleda tako imas netestiran scenario, zamazao si sefu oci sa "imam test" nad skrivenom metodom koja ne puca na tvom pretpostavljenom magacinu, a bagove, to nek resava kupac ili Q&A, jel tako? "Assumption is the mother of all fuckups"
Vidis interni state objekta je uvek parametar svakog instance metoda (predstavljeno kroz interni skriveni parametar, this npr) i tvoje testiranje mora da ukljuci taj state kao parametar. Dalje, da ti jos zakomplikujem zivot, u sorsu taj tvoj Clean() metod bi mogao da se refaktoruje na kod koji bira sredstvo i onda poziva Clean(sredstvo) specijalizaciju, sto te vraca na prvi korak. Dakle, ako nemas toliko testova, opet si zabusavao i koristio black-box prirodu metode da pokrijes potencijalne rupe Sto nas vodi ka trecem, testiranje i TDD takodje nije kompenzacija za dobar dizajn.
I da ja priupitam, zasto je ova tema u PHP forumu kad se tice teorije programiranja, zar nije AoP bolje mesto?
[Ovu poruku je menjao Goran Rakić dana 16.06.2010. u 01:45 GMT+1]
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić