构建一个容易单元测试的java--web系统

web

最近在做一个项目,我们使用的是一些看似很标准的WEB结构,DAO(数据访问)+HELPER(处理业务操作)+ACTION(调用HELPER层)+struts的控制系统,页面使用struts标签和部分自定义标签完成显示.

进入测试阶段后

1,DAO测试--junit的确非常不错,我们使用eclipse+junit.jar,很满意的完成了这部分检测

2.helper测试--使用和DAO相同的测试方法完成测试

3.进入action测试阶段,出现问题,首先mapping无法模拟,改用strutstestcase,发现主要有Cactus approach 和
Mock Object approach ,真正使用以后,又 发现很多东西不能嵌入,测试模拟框架没有能够处理的足够工具,再加上没有好的工具支持,最后的action部分等于放弃,将希望放置于结合测试中,如何搭建一个好的驱动先行的系统框架,这时候才让人觉的重要,合理有效的分离各层的类,使各层的类能够被独立的测试而不需要容器的支持,将是保证代码质量很重要的一部分,希望以后能够有更多的理解.组织使用一个完善的高质量的框架系统

结合这次测试和一些网上的资料,我对好的框架有了一些个人的看法,struts的action中的execute方法要注意使用,不是每个方法的实现都同时需要mapping,actionform,request.response这四个参数的,应该适当的做一些方法出来,分离他们.力求让方法带最小的参数.2.为了测试的方便,开发的时候应该适当的对外暴露一些接口,让测试可以将数据放进去.

顺便说一下,也许是我见识的少,STRUTS的测试工具的确很不方便,也不全面,现在的工具都不足以让用户进行方便,灵活的单体测试.

时间: 2024-09-08 12:48:04

构建一个容易单元测试的java--web系统的相关文章

大型Java Web系统服务器选型问题探讨

一位网友在JavaEye询问了一个大型Web系统的架构和部署选型问题,希望能提高现有的基于Java的Web应用的服务能力.由于架构模式和部署调优一直是Java社区的热门话题,这个问题引发了很多热心网友的讨论,其中一些意见对其它大型Web项目也有很好的指导意义.在讨论之初jackson1225这样描述了当前的应用的架构和部署方案: 目前系统架构如下: web层采用struts+tomcat实现,整个系统采用20多台web服务器,其负载均衡采用硬件F5来实现: 中间层采用无状态会话Bean+DAO+

使用jQuery和PHP构建一个受Ajax驱动的Web页面

大多数 PHP 开发人员都是以老式的方法学习技能.他们一般先学习如何定义和构建简单 的 PHP 页面,然后再了解如何将这些页面连接到简单的 MySQL 表,于是就可以由此进行自 己的开发了.随着技能水平的提高,他们还逐渐学会了如何创建更为复杂的 PHP 功能,以及 如何连接 MySQL 内的表并执行其他高级任务. 在这个过程中,他们有可能还会掌握 一些客户端技能来将 Web 应用程序投入使用.也有可能学会有关 XHTML 或 CSS 甚至一些 JavaScript 编程的知识.随着所参与项目的种

如何在运维场景中构建一个优秀精准的异常检查系统

在实际的运维场景中,构建一个异常检测系统往往需要两个角色共同参与:领域专家和算法开发人员.领域专家也就是我们的运维人员,他们对KPI曲线的行为很熟悉,可以通过观察KPI曲线并结合自己的领域知识,判断KPI曲线是否出现异常:算法开发人员负责构建异常检测系统,他们熟悉异常检测器(算法),但是实际中有各种不同类型的KPI曲线需要维护,所以需要为不同类型的KPI曲线选择合适的异常检测器以及合适的算法参数. 在实际构建异常检测系统时,首先需要运维人员结合自己的领域知识向算法开发人员描述异常,然后开发人员根

java web项目部署到Linux后访问WEB-INF/classes文件下一个文件的问题

问题描述 java web项目部署到Linux后访问WEB-INF/classes文件下一个文件的问题 java web项目部署到Linux服务器上,其中有一个模板下载的请求连接,模板文件就是放在src下面编译后放在classes文件夹下.现在问题是访问这个下载链接时,项目日志报异常了No such file or directory.是不是我这个java应用没有访问这个文件的权限呢?怎么才能让它能访问呢? 解决方案 No such file or directory 有记录具体的路径信息吗?文

云效公有云如何构建一个基于Composer的PHP项目

最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了云效公有云团队大量的帮助,分享这篇内容希望能让更多的人了解和用好这个产品. 我会把我最近3个月的使用体会分成5个部分:使用云效公有云的动机.PHP项目集成.JS项目集成.JAVA项目集成.Docker类项目集成这5个分支来写. 因为近期公有云的迭代比较频繁,所以我的分享会比较的浅,点到为止,仅供参考,目录: 1.云效公有云如何耦合进我们的业务 2.如何构建一个基于Composer的PHP项目 3.如何构建一个基于NodeJS的前后端项目

云效(原RDC)如何构建一个基于Composer的PHP项目

最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品. 我会把我最近3个月的使用体会分成5个部分:使用RDC的动机.PHP项目集成.JS项目集成.JAVA项目集成.Docker类项目集成这5个分支来写 因为近期RDC的迭代比较频繁,所以我的分享会比较的浅,点到为止,仅供参考,目录: 1.RDC如何耦合进我们的业务 2.如何构建一个基于Composer的PHP项目 3.如何构建一个基于Nod

云效(原RDC)如何构建一个基于NodeJS的前后端项目

最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品. 我会把我最近3个月的使用体会分成5个部分:使用RDC的动机.PHP项目集成.JS项目集成.JAVA项目集成.Docker类项目集成这5个分支来写 因为近期RDC的迭代比较频繁,所以我的分享会比较的浅,点到为止,仅供参考,目录: 1.RDC如何耦合进我们的业务 2.如何构建一个基于Composer的PHP项目 3.如何构建一个基于Nod

java web-web系统页面展示中文简体怎么翻译成繁体。

问题描述 web系统页面展示中文简体怎么翻译成繁体. 有多个java web系统,想提供给港澳台地区使用,不知道怎么把他们都翻译成繁体,或者有什么收费系统能实现? 解决方案 建议调用google翻译来进行.简体翻译成繁体比较麻烦,需要语义的理解,相当于翻译.因为简体字对应不同含义的多个繁体字. 比如游泳.游玩:皇后.后面:头发,发财(游泳.遊玩:皇后.後面:頭髮,發財)等等.简单的转换显得太不专业. 解决方案二: 客户端js就可以做翻译,自己整个简繁体对照表,然后遍历dom内容进行翻译,不过意义

javaweb-java web 系统如何实现功能模块的热插拔?

问题描述 java web 系统如何实现功能模块的热插拔? 在java web 系统中,有时需要根据业务的变化动态的增加或者减少相关的功能模块,如何实现在增加或者减少功能模块时无需重新启动服务器,达到动态的检测到项目功能的变化. 解决方案 使用脚本引擎,动态加载.比如用js作为插件.