?????????????Mock Object ????????????????????????Mock???????????У???????????blogService.save(blog) ???????blogDao??save(blog) ???????????????????????????????? blog???????????????blogDao??????????????????????????
?????????????????????????Dummy Objec?? Mock Object??????????TestDouble ??????????????????????????????????????к????л???????????????????????????????С????仰???????????????????????????Stub??????????Mock?????Stub??Mock????Stub ?????????????С??????????????????????????
?????????Щ????????Mock??????????????????????????????з??????????blogDAO.save(blog)????????????????????д??????????????????????????????????????д?BlogService??????????в???????????????????????blogDAO.save(blog) ??з??????????????????????????????????????????????????TestSpy????????????????????????Dynamic Mock framework ??????????????????TestSpy???????????дTestSpy??????????д?????????Mock??????????????????????????????????“????DAO????????????”?? ???????????????blogDao??save(blog) ???????????????save(blog)??????????????????????save(blog)???????????????????“????DAO????????????”???????????????????????Mock ??????perfectl valid?????С????????????У????????setTitle("title")?? setContent("content")??setCreatedTime(new Date())????Щ???????????????κι????
?????Щcomments??
????“??????????????????????????Service????????????Service????????????????DAO??????????????”
????--??????????????????? Service??з??????????????????DAO????з???????????в??????????????????????????????????????????????blogDao??save(blog)?? ?????á?
????“????Service???????????????????????“
????--????????????????г??????????????Service class ???????????but just some interaction with other classes. ???磬Service class ???????DTO?????? ?????Mapper ????Map ??Entity object????Validator ? validate?? ?? logger д ??? log?? ????DAO ?浽?????????????£????ò????Щ????Mock ??Interactive ?????
???????????
????·???????? Mock
????·????Mock????????Mock??????μ?
????·??????????????????