软件单元测试之Service的测试

发表于:2009-04-07来源:作者:点击数: 标签:单元测试serviceService
测试Service,因为Service依赖的Dao, 所以只需Mock一个Dao即可。在这里我详细的介绍关于注册这个功能的测试 java 代码 publicinterfaceIAccountServiceextendsIBaseService{ AccountfindAccountById(Stringid); AccountfindAccounByName(Stringname); voidre

 测试Service,因为Service依赖的Dao, 所以只需Mock一个Dao即可。在这里我详细的介绍关于注册这个功能的测试
java 代码   public interface IAclearcase/" target="_blank" >ccountService extends IBaseService {         Account findAccountById(String id);         Account findAccounByName(String name);         void regist(Account account) throws ObjectExistsException;   }         

 注册功能的实现。

 java 代码   public void regist(Account account) throws ObjectExistsException {       if(accountDao.findAccounByName(account.getName()) != null)           throw new ObjectExistsException("User's name is exists!");              accountDao.save(account);   }  
测试代码 java 代码       protected void setUp() throws Exception {           control = MockControl.createControl(IAccountDao.class);           accountDao = (IAccountDao) control.getMock();           as = new AccountService();           as.setAccountDao(accountDao);       }         public void testFindAccountByName() {           String name = "wuhua";           accountDao.findAccounByName(name);           Account a = new Account("wuhua");           a.setId(name);           control.setReturnValue(a);           control.replay();           Account at = as.findAccounByName(name);           Assert.assertEquals(name, at.getId());           Assert.assertEquals(a, at);           control.verify();       }  
        首先我们建立一个关键字查询,name="wuhua";
        然后调用Dao的方法,
        然后自定义返回一个自己预期的对象,
        最后通过比较这个对象判断结果是否是自己想要的

原文转自:http://www.ltesting.net