框架复杂
WEB开发使用的框架很少有自己独立设计的,一般都会使用现成的架构,如Struts、JSF、WebWork、EJB、Spring、Hibernate、iBATIS等等,不同的框架,能够支持单元测试的程度也是不一样的。
数据库访问技术多
业软的WEB应用开发很少有不访问数据库的,因为多是面向业务的开发,业务离不开数据存储。项目组可能会选择不同的数据库访问技术,如JDBC、EntityBean、Spring、Hibernate、iBATIS等,对于涉及数据库访问的代码如何做单元测试也是我们需要解决的问题。
2 单元测试技术需要解决的问题
有许多的单元测试技术和工具,综合起来,无非是为了解决以下问题。
驱动(Driver)—驱动被测单元
单元不能独立运行,必须实现调用它们的代码,我们称其为驱动代码,其实最简单的驱动就是实现main方法,大家常用的驱动典型工具就是JUnit。
构建桩(Stub)—模拟被测单元依赖的对象
被测的孤立单元通常会对其它对象有依赖,这种依赖通常表现在:依赖对象通过被测方法参数传入或者被测对象保存有依赖的对象引用,然后在被测方法中调用了依赖对象的方法。构造依赖对象,一方面我们可以直接将开发完成的并且之前已经过单元测试的代码直接拿过来用,另一方面,也是更常用的方法,就是自己构建模拟对象,我们称其为桩,但自己写桩很麻烦,工作量大,现成构建桩的理想工具是EasyMock。
WEB开发使用的框架很少有自己独立设计的,一般都会使用现成的架构,如Struts、JSF、WebWork、EJB、Spring、Hibernate、iBATIS等等,不同的框架,能够支持单元测试的程度也是不一样的。
数据库访问技术多
业软的WEB应用开发很少有不访问数据库的,因为多是面向业务的开发,业务离不开数据存储。项目组可能会选择不同的数据库访问技术,如JDBC、EntityBean、Spring、Hibernate、iBATIS等,对于涉及数据库访问的代码如何做单元测试也是我们需要解决的问题。
2 单元测试技术需要解决的问题
有许多的单元测试技术和工具,综合起来,无非是为了解决以下问题。
驱动(Driver)—驱动被测单元
单元不能独立运行,必须实现调用它们的代码,我们称其为驱动代码,其实最简单的驱动就是实现main方法,大家常用的驱动典型工具就是JUnit。
构建桩(Stub)—模拟被测单元依赖的对象
被测的孤立单元通常会对其它对象有依赖,这种依赖通常表现在:依赖对象通过被测方法参数传入或者被测对象保存有依赖的对象引用,然后在被测方法中调用了依赖对象的方法。构造依赖对象,一方面我们可以直接将开发完成的并且之前已经过单元测试的代码直接拿过来用,另一方面,也是更常用的方法,就是自己构建模拟对象,我们称其为桩,但自己写桩很麻烦,工作量大,现成构建桩的理想工具是EasyMock。