WEB开发网
开发学院软件开发Java StrutsTestCase 简化开发过程 阅读

StrutsTestCase 简化开发过程

 2010-03-19 00:00:00 来源:WEB开发网   
核心提示: 比如在这个例子中,方法会一直返回 true,StrutsTestCase 简化开发过程(7),除非用 disabledUser 作为输入参数调用它,现在只应当在单元测试阶段使用这个方法,则应当返回 true;否则应当返回 false,接下来要 创建一个测试用例,而主程序 LoginActionF

比如在这个例子中,方法会一直返回 true,除非用 disabledUser 作为输入参数调用它。现在只应当在单元测试阶段使用这个方法,而主程序 LoginActionForm 不应当知道这一点。针对这个需求,我创建了 STCRequestProcessor,它扩展了 RequestProcessor。它允许向 Action 和 ActionForm 类中插入模拟实现。

要使用 STCRequestProcessor,需要修改 struts-config.xml,如清单 7 所示:

清单 7. struts-config.xml 文件

<controller> 
   <set-property property="processorClass" value="com.sample.util.STCRequestProcessor"/> 
</controller> 
</code> 

这一行指出 Struts 用 STCRequestProcessor.java 作为 RequestProcessor。不要忘记,在容器中部署应用程序部署时要删除这些行。

接下来是创建 LoginActionForm 的模拟类,如清单 8 所示:

清单 8. MockLoginActionForm.java 类

public class MockLoginActionForm extends LoginActionForm { 
   public boolean isUserDisabled(String userName) { 
      if (userName != null && userName.equals("disableduser")) 
         return true; 
      return false; 
   } 
} 

isUserDisabled() 方法检查用户名是否为 "disableduser"。如果是,则应当返回 true;否则应当返回 false。

接下来要 创建一个测试用例,对禁用用户进行测试,如清单 9 所示:

清单 9. testDisabledUser() 方法

public void testDisabledUser()throws Exception{ 
   STCRequestProcessor.addMockActionForm("loginForm", 
   "com.sample.login.mock.MockLoginActionForm"); 
   setRequestPathInfo("/login"); 
   addRequestParameter("userName","disableduser"); 
   addRequestParameter("password","wrongpassword"); 
   actionPerform(); 
   verifyInputForward(); 
   String[] userDisabled ={"user.disabled"}; 
   verifyActionErrors(userDisabled); 
} 

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:StrutsTestCase 简化 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接