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

StrutsTestCase 简化开发过程

 2010-03-19 00:00:00 来源:WEB开发网   
核心提示: 在这个测试用例中,插入了 LoginAction 和 LoginActionForm 的模拟实现,StrutsTestCase 简化开发过程(9),避免数据库查询,接着要设置用户名和口令参数,而且,因为没有执行 ActionForward JSP 组件,在控制权从 actionPerform()

在这个测试用例中,插入了 LoginAction 和 LoginActionForm 的模拟实现,避免数据库查询,接着要设置用户名和口令参数。在控制权从 actionPerform() 返回之后,就可以检查是否利用 "invalid.login" 这条出错信息把用户重定向到登录页面。

测试有效登录

现在是时候来验证在用户输入正确的用户名和口令时,是否用成功页面欢迎用户,如清单 12 所示:

清单 12. testLoginActionFormError

public void testValidLogin() throws Exception{ 
   STCRequestProcessor.addMockActionForm("loginForm", 
   "com.sample.login.mock.MockLoginActionForm"); 
   STCRequestProcessor.addMockAction("com.sample.login.LoginAction", 
   "com.sample.login.mock.MockLoginAction"); 
   setRequestPathInfo("/login"); 
   addRequestParameter("userName","ibmuser"); 
   addRequestParameter("password","ibmpassword"); 
    actionPerform(); 
   verifyNoActionErrors(); 
   verifyForward("success"); 
} 

这一代码段首先在请求参数中把用户名设置为"ibmuser",并把口令设置为 "ibmpassword",然后调用 actionPerform()。在执行 actionPerform() 方法时,需要调用 verifyForward() 方法,检查用户是否被重定向到成功页面。它还调用了 verifyNoActionErrors() 方法,以验证在这个事务中没有出现 ActionErrors。

模拟的优势与不足

使用模拟方式有一些优势。这种方式比较快,因为不必为了每个更改而启动和停止容器。另一方面,因为没有使用真正的容器,所以可能无法验证监听器或过滤器带来的副作用。而且,因为没有执行 ActionForward JSP 组件,所以也无法发现 JSP 中的错误。

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

Tags:StrutsTestCase 简化 开发

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