Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mock objects 000

95 views

Published on

eghjsadgjhsag

Published in: Business
  • Be the first to comment

  • Be the first to like this

Mock objects 000

  1. 1. MMoocckk OObbjjeeccttss
  2. 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. 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. 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. 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. 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. 7. BByy hhaanndd wwiitthh MMoocckkOObbjjeeccttss lliibbrraarryy  CCrreeaattee tthhee mmoocckkss  SSeett ssttaattee//eexxppeeccttaattiioonnss  EExxeeccuuttee ccooddee  HHaavvee mmoocckkss vveerriiffyy eexxppeeccttaattiioonnss  LLoottss ooff dduupplliiccaattiioonn aaccrroossss MMoocckkss
  8. 8. MMoocckkMMaakkeerr  GGiivveenn aann iinntteerrffaaccee oorr ccllaassss,, ccrreeaattee aa mmoocckk oobbjjeecctt ffoorr iitt  MMoocckk ccaann tthheenn bbee ttwweeaakkeedd
  9. 9. EEaassyyMMoocckk  CCrreeaattee mmoocckk oobbjjeecctt aatt rruunnttiimmee  TTwwoo mmooddeess:: rreeccoorrdd aanndd rreeppllaayy
  10. 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. 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

×