最近在做一个项目,我们使用的是一些看似很标准的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的测试工具的确很不方便,也不全面,现在的工具都不足以让用户进行方便,灵活的单体测试.