首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

单元测试之实践3 Service的测试

2012-07-26 
单元测试之实践三 Service的测试测试Service,因为Service依赖的Dao, 所以只需Mock一个Dao即可。在这里我详

单元测试之实践三 Service的测试

测试Service,因为Service依赖的Dao, 所以只需Mock一个Dao即可。在这里我详细的介绍关于注册这个功能的测试

java 代码?
  1. public?interface?IAccountService?extends?IBaseService?{?? ??????Account?findAccountById(String?id);??
  2. ??????Account?findAccounByName(String?name);?? ??????void?regist(Account?account)?throws?ObjectExistsException;??
  3. }??

?? 注册功能的实现。

java 代码?
  1. public?void?regist(Account?account)?throws?ObjectExistsException?{?? ????if(accountDao.findAccounByName(account.getName())?!=?null)??
  2. ????????throw?new?ObjectExistsException("User's?name?is?exists!");?? ??????
  3. ????accountDao.save(account);?? }??


测试代码

java 代码?
  1. ????protected?void?setUp()?throws?Exception?{?? ????????control?=?MockControl.createControl(IAccountDao.class);??
  2. ????????accountDao?=?(IAccountDao)?control.getMock();?? ????????as?=?new?AccountService();??
  3. ????????as.setAccountDao(accountDao);?? ????}??
  4. ?? ??
  5. public?void?testFindAccountByName()?{?? ????????String?name?=?"wuhua";??
  6. ????????accountDao.findAccounByName(name);?? ????????Account?a?=?new?Account("wuhua");??
  7. ????????a.setId(name);?? ????????control.setReturnValue(a);??
  8. ????????control.replay();?? ????????Account?at?=?as.findAccounByName(name);??
  9. ????????Assert.assertEquals(name,?at.getId());?? ????????Assert.assertEquals(a,?at);??
  10. ????????control.verify();?? ????}??


首先我们建立一个关键字查询,name="wuhua";
然后调用Dao的方法,
然后自定义返回一个自己预期的对象,
最后通过比较这个对象判断结果是否是自己想要的

热点排行