More Related Content
Similar to Mock objects 000
Similar to Mock objects 000 (20)
Mock objects 000
- 2. What aarree MMoocckk OObbjjeeccttss
AAnnyy dduummmmyy oobbjjeecctt tthhaatt ssttaannddss iinn ffoorr aa
rreeaall oobbjjeecctt tthhaatt iiss nnoott aavvaaiillaabbllee,, oorr iiss
ddiiffffiiccuulltt ttoo uussee iinn aa tteesstt ccaassee
((MMoorree rriiggiidd)):: AA mmoocckk oobbjjeecctt mmuusstt hhaavvee
tthhee aabbiilliittyy ttoo sseett uupp eexxppeeccttaattiioonnss aanndd
pprroovviiddee aa sseellff--vvaalliiddaattiioonn mmeecchhaanniissmm
- 3. WWhhyy uussee MMoocckk
OObbjjeeccttss??
HHeellpp kkeeeepp ddeessiiggnn
ddeeccoouupplleedd
CChheecckk ccooddee’’ss uussaaggee ooff
aannootthheerr oobbjjeecctt
TTeesstt ccooddee ffrroomm tthhee
iinnssiiddee oouutt
MMaakkee tteessttss rruunn ffaasstteerr
MMaakkee iitt eeaassiieerr ttoo wwrriittee
ccooddee ffoorr pprroobblleemmaattiicc
rreessoouurrcceess
DDeeffeerr hhaavviinngg ttoo wwrriittee aa
ccllaassss
TTeesstt ccoommppoonneennttss iinn
iissoollaattiioonn ffrroomm tthhee rreesstt ooff
tthhee ssyysstteemm
PPrroommoottee iinntteerrffaaccee--bbaasseedd
ddeessiiggnn
EEnnccoouurraaggee ccoommppoossiittiioonn
oovveerr iinnhheerriittaannccee
RReeffiinnee iinntteerrffaacceess
TTeesstt uunnuussuuaall,, uunnlliikkeellyy,,
aanndd eexxcceeppttiioonnaall
ssiittuuaattiioonnss
- 4. WWhheenn ttoo uussee MMoocckk
OObbjjeeccttss
NNoonn--ddeetteerrmmiinniissttiicc oorr rraannddoomm bbeehhaavviioorr
DDiiffffiiccuulltt sseettuupp
BBeehhaavviioorr hhaarrdd ttoo ccaauussee
SSllooww rreeaall oobbjjeeccttss
UUIIss
TTeesstt nneeeeddss ttoo mmaakkee qquueerriieess nnoott
ssuuppppoorrtteedd bbyy rreeaall oobbjjeecctt
NNoonn--eexxiisstteenntt rreeaall oobbjjeeccttss
- 5. HHooww ttoo uussee MMoocckk
OObbjjeeccttss
CCrreeaattee tthheemm bbyy hhaanndd ffrroomm ssccrraattcchh
CCrreeaattee tthheemm bbyy hhaanndd,, uussiinngg tthhee
MMoocckkOObbjjeeccttss lliibbrraarryy
UUssee MMoocckkMMaakkeerr ttoo ggeenneerraattee tthhee mmoocckk
oobbjjeecctt pprriioorr ttoo eexxeeccuuttiioonn
UUssee EEaassyyMMoocckk ttoo ggeenneerraattee tthhee mmoocckk
oobbjjeecctt aatt rruunnttiimmee
- 6. By hhaanndd ffrroomm ssccrraattcchh
CCrreeaattee aa ccllaassss tthhaatt iimmpplleemmeennttss tthhee ssaammee
iinntteerrffaaccee aass tthhee rreeaall oonnee
HHaarrdd ccooddee rreettuurrnn vvaalluueess
LLoottss ooff wwoorrkk ttoo ccrreeaattee aanndd vvaalliiddaattee
eexxppeeccttaattiioonnss
- 7. BByy hhaanndd wwiitthh
MMoocckkOObbjjeeccttss lliibbrraarryy
CCrreeaattee tthhee mmoocckkss
SSeett ssttaattee//eexxppeeccttaattiioonnss
EExxeeccuuttee ccooddee
HHaavvee mmoocckkss vveerriiffyy eexxppeeccttaattiioonnss
LLoottss ooff dduupplliiccaattiioonn aaccrroossss MMoocckkss
- 8. MMoocckkMMaakkeerr
GGiivveenn aann iinntteerrffaaccee oorr ccllaassss,, ccrreeaattee aa
mmoocckk oobbjjeecctt ffoorr iitt
MMoocckk ccaann tthheenn bbee ttwweeaakkeedd
- 10. EasyMock aaddjjuussttmmeennttss
MMaakkee tthhee ffoolllloowwiinngg aaddjjuussttmmeennttss ttoo
EEaassyyMMoocckk eexxaammppllee ccooddee iinn tthhee bbooookk::
EEaassyyMMoocckk..nniicceeCCoonnttrroollFFoorr sshhoouulldd bbee
MMoocckkCCoonnttrrooll..ccrreeaatteeCCoonnttrrooll
ccoonnttrrooll..aaccttiivvaattee sshhoouulldd bbee ccoonnttrrooll..rreeppllaayy
- 11. EEaassyyMMoocckk MMaattcchheerr
EEaassyymmoocckk bbyy ddeeffaauulltt uusseess
OObbjjeecctt..eeqquuaallss(()) ttyyppee ccoommppaarriissoonn
FFoorr aarrrraayyss,, tthhiiss ddooeessnn’’tt llooookk aatt ccoonntteenntt
SSoolluuttiioonn:: tthhee ffiirrsstt ttiimmee yyoouu ccaallll aa mmeetthhoodd
tthhaatt ttaakkeess aann aarrrraayy aass aa ppaarraammeetteerr,, sseett
tthhee mmaattcchheerr bbeeffoorree sseettttiinngg rreettuurrnn vvaalluuee