用测试驱动的方式开发Struts 2应用

其实没啥创新,都是从外国的那些牛人的书籍和博客里学来的,只是针对这个主题作了一些整合的工作,甚是惭愧。
不过作为一个没有任何实际经验的学生来说,我却耗费了足足三个月呢。不过在此过程中,稍稍领略的TDD和敏捷之美,对TDD越来越感兴趣,所有这三个月的奋斗历程甚感充实。
另外,我也看到在开发Struts2的Action方面,网络上以及任何可查资料上都尚未有较完美较通用的解决方案,本想多多研究Struts2的源码,在这方面作出一些创新,提出自己的一套方案,可惜惰性使然,我并没有继续深入研究下去,从而不了了之。唉,惭愧之至。
放到JavaEye与大家共享,还望各位大虾不要见笑。


摘    要

测试驱动开发是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。Struts 2则是传统的Struts的替代者,是一个优秀的用于开发Java企业级应用的Web MVC框架,可以极大地提高开发效率。本文大量引用中外专业文献,力求在总结前人经验的基础上,有所整合、有所创新,探讨基于Struts 2的系统的测试途径以及用测试驱动的方式开发Struts 2应用的最佳解决方案。本文所提方案将在三江园丁网开发中进行验证。

关键词:测试驱动开发  测试优先编程  单元测试  重构  Junit  Struts 2  Ant

目    录

摘    要 I
Abstract II
目    录 III

第一章 测试驱动开发原理 1
1.1 结构化开发过程及其弊端 1
1.2 敏捷宣言和测试驱动开发 1
1.3 测试驱动开发基本原理 1
1.4测试驱动开发的一个生动比喻 2
1.5 测试驱动开发的本质和优势 2
1.6 测试驱动开发现状和前景 3

第二章 测试驱动开发实践 4
2.1 单元测试技术 4
2.2 重构技术 6
2.3 测试与重构 7
2.4 Strtus 2应用TDD实践 7
2.5园丁网项目TDD实践 9

第三章 业务控制器的TDD方案 11
3.1 方案一:将Action作为POJO 11
3.2 在Action中调用业务逻辑组件 14
3.3 在Action中访问Servlet API 21
3.4 方案一存在的问题: 26
3.5 方案二:复杂的解决方案 26
3.6 方案一和方案二的取舍: 27
3.7 阶段性小结:TDD的原则 27

第四章 业务逻辑层的TDD方案 28
4.1 业务逻辑与数据库访问代码分离 28
4.2 增加同类型测试用例 32
4.3 测试的方法没有返回值 34

第五章 数据库访问层TDD方案 35
5.1 数据库单元测试的几种可行方案 35
5.2 各方案优劣比较 36
5.3 数据库TDD解决方案 37
5.4 DAO组件TDD案例演示 38
5.5 阶段性小结: 46

第六章 实践TDD的其他技能 50
6.1 测试代码的组织 50
6.2 自由地组合测试 51
6.3 自动化测试与构建 54

第七章 总结与展望 56
7.1 本文主要工作成果 56
7.2 本文存在的欠缺之处 56
7.3 Struts 2框架的一个问题 57
7.4实践TDD的具体流程 57
7.5 未来展望 57

结束语 59
致谢 61
参考文献 62

猜你喜欢

转载自yunzhu.iteye.com/blog/436691