关于数据库论文范文素材,与文献综述内容相关论文格式模板
本论文是一篇关于数据库论文格式模板,关于文献综述内容相关毕业论文的格式范文。免费优秀的关于数据库及管理系统及档案管理方面论文范文资料,适合数据库论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
ase和EasyMock,和单元试Struts的应用导致试设置的试但是这两个框架留下缺口,在这篇文章中我检查对象办法方面解决比较也显示的程序设计(AOP)补对象编程(OOP)整合的Struts应用执行环境因为Struts的Servlet的容器典型其他要求模拟对象测试方法,有助于消除不必要的关于数据库论文范文素材
规定模拟预期,
在测试时把模拟注入到行为,
继续试验与论证,
第四步履行了注入依赖,这种注入在试验下,指导Struts的行为远离其真正合作者EasyMock产生的模拟注入到行为,你需要进入试验班的行为事例不幸的是这是一个障碍因为不易进入ockstrutstestcase.
OOP解决方案
你能从ockstrutstestcase进入行为事例ockstrutstestcase和Struts的控制器组成部分之间的关系.
图1突出主要关系有可能导致一个解决办法
图1.关系可能导致一个的办法ActionServlet和RequestProcessor来给MockStrutsTestCase提供行为的通路吗随之发生呼叫链条将是:
myActionTest.getActionServlet().getRequestProcessor().getActions().
当你看着那种把MockStrutsTestCase和Struts行为联系起来的呼叫的序列,这种方法就不管用了.
图2说明了MockStrutsTestCase和Struts组成部分的主要关系.
图2MockStrutsTestCase和Struts组成部分之间的相互影响
如图2所示,问题包括Struts行为创造的定时.模拟注入到行为要在对MockStrutsTestCase.actionPerform()的呼叫之前发生.然而,只有在对actionPerform()进行访问之后,actionPerform()才创造行为事例.因为你不能容易地向MockStrutsTestCase传播行为事例,为什么不访问基类RequestProcessor,不考虑processActionCreate()方法呢在不考虑方法中,你可以使用所有的行为事例,所以为正确的行为事例创建,配置,设定一个模拟变得简单直接了.因为MockControl.verify()应该在actionPerform()之后被呼叫,你也需要不去考虑processActionPerform()来确认这次访问.
这种方法来试验重大的Struts的应用是不切实际的.即使所有的行为都与一个简单的模拟相互影响,相互作用,测试一个行为很可能需要多样的试验方法,每个都伴随着不同的预期.建议的解决方案不会再创建不同的RequestProcessor基类,每个都设立不同的模拟预期.多样的Struts配置文件也需要详细说明不同的RequestProcessor基类.管理许多的试验会成为一件头痛的事.
AOP解决方案
因此,不知是什么原因,在行为执行之前使行为事例可用于MockStrutsTestCase仍然是可取的.如果你熟悉AOP,你认出向这要求直接被安置的简单解决方案.关键是要定义一个捕获行为执行连接处点的pointcut,然后在把模拟注入到行为之前详细说明一个建议.
在这里,我选择AspectJ来实现这个解决方案.其它AOP工具,比如SpringAOP,应该正常工作.SpringAOP要求一个额外的委派Struts行为管理为代表来触发Spring'sDelegatingActionProxy的措施.
有关论文范文主题研究: | 关于数据库的论文范文集 | 大学生适用: | 高校毕业论文、专科论文 |
---|---|---|---|
相关参考文献下载数量: | 49 | 写作解决问题: | 本科论文怎么写 |
毕业论文开题报告: | 标准论文格式、论文选题 | 职称论文适用: | 期刊发表、高级职称 |
所属大学生专业类别: | 本科论文怎么写 | 论文题目推荐度: | 最新题目 |
图3用以AOP为基础的解决方案,展示了单位试验例子的静止模型.
图3.以AOP为基础的解决方案,展示了单位试验例子的静止模型
SimpleAction是一个Struts行为的基类,与ActionService合作.SimpleActionTest来自MockStrutsTestCase去测验SimpleAction.
SimpleActionTest用EasyMock创造,建立一个模拟ActionService.
当SimpleAction的执行方法将要运行时,SimpleActionTest也执行StrutsActionPreExecuteListener界面来接收通知.作为通知的一部分,SimpleActionTest收到SimpleAction例子来注入ActionService模拟.它是通知任何试验组的方面课StrutsActionPreExecuteNotifier,这些班级执行听者界面,使行为事例可用.
StrutsActionPreExecuteNotifier的执行步骤如下:
首先,一个pointcut选择测试方法施行点.这种测验方法在等着听行为预执行的事件的试验种类过程中存在.pointcut暴露当前的执行测试组对象:pointcutmockStrutsTest(StrutsActionPreExecuteListeneractionTest):
execution(publicvoidStrutsActionPreExecuteListener+.test*())&,&,this(actionTest),
其次,另一个pointcut捕获行为施行点.pointcut结合起来,匹配的范围被限制在行为测试方法的流程之内.被减少的范围过滤掉测试方法触发的行为施行.结果方面不影响生产代码.行为和它对应的测试组事例通过pointcut参量被暴露pointcutstrutsActionExecute(Actionaction,StrutsActionPreExecuteListeneractionTest):
execution(publicActionForwardAction+.execute(..))&,&,this(action)&,&,cflow(mockStrutsTest(actionTest)),
最后,一个以前的与早先的pointcut相关的建议通知行为事件的听者before(Actionaction,StrutsActionPreExecuteListeneractionTest):
strutsActionExecute(action,actionTest){actionTest.preActionExecuteOccurred(action),}
图4说明
图4组之间的动态的相互作用
从行为到方面的虚线代表行为施行接合点的捕获.把这第二张程序表与第一张比较,重大区别是三个步骤发生在行为施行之前pointcut捕获行为执行连接处点,由从SimpleAction到StrutsActionPreExecuteNotifier奔忙的箭头表明.
方面的以前的建议通知试验组,把相应的行为事例传给它.
试验组把模拟对象注入到即将要开始执行的行为事例.
现在你可以根据先前概述的五个步骤来继续写行为试验.下面代码显示了为SimpleActionTest列出的部分代码,有一列式的注释来强调每个步骤:
使用MockStrutsTestCase和EasyMock的行为试验的部分列表
publicclassSimpleActionTestextendsMockStrutsTestCase
implementsStrutsActionPreExecuteListener{
//2.MocktheclassthatActiondependson
privateMockControlmockControl等于MockControl.createControl(ActionService.class),
privateActionServiceserviceMock等于(ActionService)mockControl.getMock(),
//1.SetupMockStrutsTestCase
protectedvoidsetUp()throwsException{
super.setUp(),
setRequestPathInfo("/action
关于数据库论文范文素材,与文献综述内容相关论文格式模板参考文献资料: