软件测试之如何编写干净的单元测试用例

发表于:2009-03-09来源:作者:点击数: 标签:软件测试单元干净编写
本文假设读者已经熟悉 单元测试 及JUnit工具的使用,如果对单元测试及JUnit尚不了解请先 学习 单元测试及JUnit工具的相关知识。读者最好对Spring框架及Spring框架提供的单元测试支持有所了解,因为本文案例基于Spring技术编写。但对Spring不了解并不影响本文
本文假设读者已经熟悉单元测试及JUnit工具的使用,如果对单元测试及JUnit尚不了解请先学习单元测试及JUnit工具的相关知识。读者最好对Spring框架及Spring框架提供的单元测试支持有所了解,因为本文案例基于Spring技术编写。但对Spring不了解并不影响本文所讲述的单元测试用例编写及回调模式、模板方法的应用。

        单元测试是编写高质量代码的前提,通过编写有效的单元测试即可以保证代码的质量又可以提高开发速度,因为大多数问题都可以通过单元测试发现并解决而不需要部署到应用服务器。纵览网上流行的优秀开源框架,无一不提供完整的单元测试用例。Spring框架便是其中的代表和佼佼者,因为Spring所遵循的控制反转(IoC)和依赖注入(DI)原则使编写有效、干净的单元测试用例变得更加方便、快捷。

        编写单元测试用例 

        本文所采用的案例非常简单,就是对数据库表的增、删、改、查操作进行测试。假设我们有这样一个表url(MySql数据库):

a

        正如你所见,该表只有几个字段,但对于我们的案例来说完全够用。

        看到此处,你应该清楚我们是要对数据库操作进行单元测试。如果你是一位经验丰富的开发人员,此时已经会有许多疑问,甚至已经失去继续阅读本文的兴趣:

    2  单元测试不应该直接操作数据库?

    2  对数据库操作的单元测试可以采用DAO模式,Mock一个实现类?

    2  使用内存数据库?

    2  其他

aa

        数据库表有了,我们接下来编写DAO及其实现类:

    DAO接口:

/**
* @author tao.youzt
*/
public interface BizUrlDAO {
public Object insert(BizUrlDO bizUrlDO);
public int delete(String url);
public BizUrlDO getByUrl(String url);
}
 

     

原文转自:http://www.ltesting.net