Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
26
rozdział1PodstawyWstrzykiwaniazależności:co,jakidlaczego
MożliwośćzamienieniazaplanowanychZALEŻNOŚCInazamiennikitestowejestpro-
duktemubocznymluźnegopowiązania,alezdecydowaliśmysięgowyszczególnićna
liściejakooddzielnąkorzyść,ponieważwynikającaztegowartośćjestinna.Osobiście
doświadczyliśmytego,że
DI
przynosikorzyścinawetpodczastestowaniaintegracyjnego.
Chociażzzasadykomunikująsięonezprawdziwymisystemamizewnętrznymi(takimi
jakbazadanych),nadalwymaganyjestjakiśstopieńizolacji.Innymisłowy,nadal
istniejąpowody,byzamieniać,
PRZECHWYTYW
lubsymulowaćniektóre
ZALEŻNOŚCI
wtestowanejaplikacji.
Przechwytywaniewiadomościtekstowych
Ja(Steven)pracowałemwwieluaplikacjach,którewysyłająSMS-yprzezniezależnyserwis.
Niechciałem,żebynasześrodowiskotestowewysyłałotewiadomościprzezprawdziwe
bramki,ponieważkosztzależałodilościwiadomościijazdecydowanieniechciałemnie-
chcącyspamowaćtelefonutakimirzeczami.
Alewtrakcietestówmanualnychwiadomościtekstowebyływysyłanenakomórki.Jed-
nak,wtymprzypadku,użytoDekoratora,któryzamieniałnumertelefonuwysyłanydo
bramkinataki,doktóregomiałdostęptester.Wtensposóbmiałonmożliwośćotrzymania
wiadomościnaswójtelefoniweryfkacjitestowanegosystemu.
Wzależnościodtypuaplikacji,trzebabędzienieprzejmowaćsięmożliwością
późnegowiązania,alemyzawszedbamyo
TESTOWALNOŚĆ
.Niektórzyprogramiści
niezwracająnaniąuwagi,alewciążuważająpóźnewiązaniezaważnedlaaplika-
cji,któretworzą.Wkażdymrazie
DI
zapewniaopcjenaprzyszłośćprzyminimalnym
dodatkowymnarzuciedzisiaj.
przykład:testjednostkowylogikihellodi
Wsekcji1.2.1widziałeśprzykładHello
DI
!Mimożepokazaliśmykońcowykodna
początku,stworzyliśmygoprzyużyciu
TDD
.Listing1.4pokazujenajważniejszytest
jednostkowy.
UWAGA
Brakdoświadczeniawtestachjednostkowychniejestpowodem
dozmartwienia.Czasamipojawiająsięwtejksiążce,alewżadensposóbnie
niezbędne.Książkęmożnaczytaćbeztejwiedzy13.
Listing1.4.TestowaniejednostkoweklasySalutation
[Fact]
publicvoidExclaimWillWriteCorrectMessageToMessageWriter()
{
13JednakwartoprzeczytaćTheArt.OfUnitTestingRoyaOsherove’a(polskietłumaczenie:Testyjednost-
kowe.Światniezawodnychaplikacji.WydanieII,Helion2014),anastępniexUnitTestPatternsGerarda
Meszarosa(op.cit.).