这个action怎么测试?

action类大概样子如下:

java 代码
  1. public class GuideLinkGropAction extends BaseAction {   
  2.   
  3.     private GuideLinkGroup guideLinkGroup;   
  4.   
  5.     private TravelBureauService travelBureauService;   
  6.        
  7.     public String getTravelBureauNames() throws Exception {   
  8.         List travelBureaulList = travelBureauService   
  9.                 .findTravelBureaulList(new TravelBureau());   
  10.         List travelBureauNamesList = getTravelBureauNameList(travelBureaulList);   
  11.         String travelBureauName = guideLinkGroup.getTravelBureau().getUserName();   
  12.         responseOut(travelBureauNamesList, travelBureauName);   
  13.         return SUCCESS;   
  14.     }   
  15.   
  16.     private List getTravelBureauNameList(List travelBureaulList) {   
  17.         List list = new ArrayList();   
  18.         Iterator iter = travelBureaulList.iterator();   
  19.         while (iter.hasNext()) {   
  20.             TravelBureau travelBureau = (TravelBureau) iter.next();   
  21.             CommonInfo info = new CommonInfo();   
  22.             info.setId(travelBureau.getId());   
  23.             info.setValue(travelBureau.getUserName());   
  24.             list.add(info);   
  25.         }   
  26.         return list;   
  27.     }   
  28.   
  29.     private void responseOut(List travelBureauNamesList, String travelBureauName)   
  30.             throws Exception {   
  31.         HttpServletResponse response = ServletActionContext.getResponse();   
  32.         List matching = CommonUtil.prefixMatch(travelBureauNamesList,   
  33.                 travelBureauName);   
  34.         PrintWriter out = response.getWriter();   
  35.         response.setContentType("text/xml");   
  36.         response.setHeader("Cache-Control""no-cache");           
  37.         Iterator iter = matching.iterator();   
  38.         while (iter.hasNext()) {   
  39.             CommonInfo info = (CommonInfo) iter.next();   
  40.             String name = new String(info.getValue().getBytes("UTF-8"),   
  41.                     "ISO8859-1");   
  42.             out.print("<name></name>" + name + "");   
  43.             out.println("<id></id>" + info.getId() + "");   
  44.         }   
  45.         out.println("");   
  46.         out.close();   
  47.     }      
  48. }  

上面的getTravelBureauNames方法是为了一个ajax的功能异步获取数据用的,responseOut方法是把数据用xml格式输出,现在要测试getTravelBureauNames方法,怎么测都没有成功,我想的大概测试代码如下:

java 代码 
  1. public class GuideLinkGropActionTest extends TestCase {   
  2.        
  3.     private MockControl control2;   
  4.        
  5.     private TravelBureauService travelBureauService;   
  6.        
  7.     Map session  = new HashMap();   
  8.        
  9.     GuideLinkGropAction action = new GuideLinkGropAction();   
  10.        
  11.     protected void setUp() throws Exception {          
  12.         control2 = MockControl.createControl(TravelBureauService.class);       
  13.         travelBureauService= (TravelBureauService) control2.getMock();   
  14.     }          
  15.        
  16.     public void testGetTravelBureauNames()throws Exception {           
  17.         travelBureauService.findTravelBureaulList(new TravelBureau());         
  18.         control2.setReturnValue(new ArrayList());              
  19.         control2.replay();   
  20.        
  21.         action.setTravelBureauService(travelBureauService);   
  22.         assertEquals(Action.SUCCESS, action.getTravelBureauNames());   
  23.         control2.verify();     
  24.     }   
  25. }  

这个测试代码肯定是通不过的

你可能感兴趣的:(Ajax,xml,cache)