j2ee项目实训spring框架技术——第5章网上商城项目中应用spring技术第2部分内容摘要:

工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 7/18 页 【例 5– 9】 将业务对象注入的代码示例 (考虑到篇幅,除掉了无关的代码) public class UserInfoManageAction extends DispatchAction { UserInfoManageInterface userInfoManageImple=null。 public void setUserInfoManageImple(UserInfoManageInterface userInfoManageImple){ = userInfoManageImple。 } //... 类中的其它方法的定义 } 对整合后的结果进行单元测试 由于本单元测试的目标类是 Struts 框架中 的各个 Action 组件 类, 它们 需要容器 来 生成 Action 类在工作过程中 的 一 些 基于容器的 对象,如 ActionMapping、 HttpServletRequest 和 HttpServletResponse 等。 因此不能再采用标准的 JUnit 框架技术,而应该采用 JUnit框架技术的扩展框架技术,如 StrutsTestCase( STC)框架。 并且采用 StrutsTestCase 中的 Mock 方法(容器外模拟测试方法) 进行 测试。 下载 Strutstest 的系统包文件 进入 Strutstest 下载的链接,下载 Strutstest的系统包文件。 然后解包它的各个类以获得其中的主要的 *.jar 系统 包文件为,并且将其放在 测试项目的系统 classpath 的设置中。 请见下面的图 中所示的内容。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 8/18 页 图 下载 Strutstest 的系统包文件的网址 在测试项目中 添加 在项目的控制层测试中所需要的各个 *.jar 包文件 将 Strutstest 和 Junit 所需要的 各个 *.jar 包 文件 加入到本测试项目 的 classpath 的环境 中 ,请见下面的图 所示。 图 添加 在控制层测试中所需要的各个 *.jar 包文件的对话框 在测试项目中添加一个 针对 UserInfoManageAction 类的 测试 用例 类 ( 1)新增加一个 测试用例( TestCase)类,请见下面的图 中所示的操作要求 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/18 页 图 增加一个 TestCase 类的菜单状态 ( 2)设置该 测试用例( TestCase)的各个项目 类名称为 MockStrutsTestUserInfoManageAction,包名称为, 基类选择为,并且被测试的类为。 请见下面的图 所示 的操作要求。 图 设置该 测试用例( TestCase)的各个项目的对话框 ( 3)点击 【 下一步 】以 选择所需要进行测试的各个方法 ,请见下面的图 所示 的操作要求。 在本项目中是选中 UserInfoManageAction 类中的各个方法。 图 选择所需要进行测试的各个方法 ( 4)最后点击 【 完成 】 按钮,将产生出下面图 所示的状态 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/18 页 图 Eclipse 自动产生的测试用例的模板程序 编程该 MockStrutsTestUserInfoManageAction 测试用例类 由于本书的篇幅有限,不能将测试用例类的完整源代码附录出。 下面给出对用户登陆功能实现的单元测试相关的代码部分。 【例 5– 10】 MockStrutsTestUserInfoManageAction 测试用例类的部分代码示例 package。 import。 import .*。 import .*。 import。 import。 public class MockStrutsTestUserInfoManageAction extends MockStrutsTestCase { public void testDoSuccessUserLogin(){ //本测 试方法主要是测试用户能否成功登陆 //下面的目录路径根据实际的状态 ,修改为对应的内容 setContextDirectory(new File(D:/AllInOneWebShop/WebShopProject/WebRoot))。 setConfigFile(/WEBINF/)。 setRequestPathInfo(/userInfoManage)。 HttpSession session=()。 //由于本项目采用验证码技术 (verifyCode,1234)。 //在 session 中产生验证码 addRequestParameter(verifyCodeDigit,1234)。 //提供验证码的测试参数值 addRequestParameter(userName,张三 )。 //提供用户登陆的测试参数值 addRequestParameter(userPassWord,12345678)。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 11/18 页 actionPerform()。 verifyForward(userLoginSuccess)。 //验证是否能够跳转到登陆成功的页面 } public void testDoFailureUserLogin() //本测试方法主要是测试用户无效登陆的状态 { //下面的目录路径根据实际的状态 ,修改为对应的内容 setContextDirectory(new File(D:/AllInOneWebShop/WebShopProject/WebRoot))。 setConfigFile(/WEBINF/)。 setRequestPathInfo(/userInfoManage)。 HttpSession session=()。 //由于本项目采用验证码技术 (verifyCode,1234)。 //在 session 中产生验证码 addRequestParameter(verifyCodeDigit,1234)。 //提供验证码的测试参数值 addRequestParameter(userName,张三 )。 addRequestParameter(userPassWord,abcdefg)。 //故意提供错误的登陆参数值 actionPerform()。 verifyForward(loginFailure)。 //验证是否能够跳转到登陆失败的页面 } // ... 测试用例类的其它测试方法,在此省略 } 执行该 MockStrutsTestUserInfoManageAction 测试用例类 ( 1)启动并执行该测试用例类,请见下面的图 所示的操作要求 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。