测试驱动开发的理论已经提出好多年了,在这里关于他的原理和优势我就不多说了,我将大略的写一下我在实际中运用TDD的过程。
补一个jar: commons-pool-1.4.jar
过程
1、搭建测试用例运行环境
2、编写接口类
3、针对接口类编写测试用例
4、实现接口类,编写对应的功能代码
5、运行测试
6、如不通过,修改直至通过
7、循环完成其他功能
搭建测试用例运行环境
spring采用的依赖注射技术带来的一个主要好处就是你的代码对容器的依赖性比传统的J2EE开发小得多。配合spring提供的测试框架Spring TestContext Framework,搭建测试用例运行环境变得非常容易。Spring TestContext Framework的详细用法参考Spring2.5参考手册的8.3.7章。
BaseTest.java
package net.sw;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.ContextConfiguration;
@ContextConfiguration(locations = {"classpath:applicationContext.xml" })
public class BaseTest extends AbstractTransactionalJUnit4SpringContextTests {
public static final int ModoleSize = 100;
}
其他测试用例需要继承BaseTest
编写接口类
编写接口类同时也明确了需要完成的功能。
AlbumDao.java
package net.sw.album.dao;
import net.sw.album.domain.Album;
import net.sw.base.dao.GenericDao;
public interface AlbumDao extends GenericDao<Album, Long> {
}
AlbumManager.java
package net.sw.album.service;
import net.sw.album.domain.Album;
import net.sw.base.service.GenericManager;
public interface AlbumManager extends GenericManager<Album,Long> {
/**
* 设置相册访问权限
* @param id 相册ID
* @param authority 权限值
*/
public void setAuthority(Long id,int authority);
}
针对接口类编写测试用例
AlbumDaoTest.java
package net.sw.album.dao;
import net.sw.BaseTest;
import net.sw.album.domain.Album;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
public class AlbumDaoTest extends BaseTest{
private Album album;
@Autowired
private AlbumDao albumDao;
@Before
public void init() {
this.album = new Album();
}
@Test
public void testCRUD() {
this.album.setName("first photo box");
Album newAlbum = this.albumDao.save(this.album);
Assert.assertEquals(this.album.getName(), newAlbum.getName());
this.album.setName("first photo box2");
Album newAlbum2 = this.albumDao.save(this.album);
Assert.assertEquals(this.album.getName(), newAlbum2.getName());
Album newAlbum3 = this.albumDao.get(this.album.getId());
Assert.assertEquals(this.album.getName(), newAlbum3.getName());
this.albumDao.remove(this.album.getId());
Assert.assertEquals(false,this.albumDao.exists(this.album.getId()));
}
}
实现接口类,编写对应的功能代码
实现的过程及功能代码下几章再讲述。
- 大小: 14.2 KB
- 大小: 19.4 KB
- 大小: 21.6 KB
分享到:
相关推荐
TDD测试驱动开发.pptx
TDD 测试驱动开发 测试驱动开发的艺术 Lasse Koskela 带目录结构
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了 TDD 优势、原理、过程、原则、测试技术、Tips 等方面。 背景 一个...
[测试驱动开发的三项修炼——走出TDD丛林].rar
《测试驱动开发的艺术》介绍了一种更快更好的软件开发方法——测试驱动开发。全书共分三部分:第一部分讲述了TDD和ATDD的相关知识、基本概念、方法,为测试驱动开发打下基础;第二部分将测试驱动开发用于具体的实践...
[测试驱动开发的三项修炼——走出TDD丛林].
code kata以及测试驱动开发TDD介绍实用PPT课件.pptx
个人总结TDD测试驱动开发TDD(1-3)
测试驱动开发 TDD ,将读者带入XP极限编程的神奇世界!
java TDD测试开发流程 包含mekito测试的整套教程。 敏捷开发 适用
教程主题:Visual Studio 2010 TDD 测试驱动开发 实战 教程录制:柳永法 web:http://www.yongfa365.com/ 本教程旨在以最简单的hello world方式像您展示 Visual Studio 2010强大的TDD,推荐任何没接触过VS2010及TDD...
一般来讲程序员都愿意把功能完美的体现在代码上,可有时候天不随人意,心里免不得担忧,我这代码能满足...由于要先开发测试用例,那么开发人员就必须清楚测试的目的,这样TDD确保了项目的代码与所需的业务是匹配的。
里面含有测试驱动开发的艺术的所有源代码,有需要的还以下载
测试驱动开发对开发的影响:工作量、质量、进度 开发和测试的相互作用 测试驱动开发的方法与原则 如何划分模块,制定集成计划 如何设计集成测试用例 如何基于模块详细设计,设计单元测试用例 如何基于...
主要介绍的测试驱动的设计和开发,以及测试的工作模式。
《测试驱动开发的3项修炼:走出TDD丛林》用实际案例及故事讲述了测试驱动开发(TDD)的最佳实践,从TDD为什么实践起来非常困难等最根源的问题入手,循序渐进地介绍了构筑TDD的三项修炼,涉及到未雨绸缪的单元及自动化...
极限编程反其道而行之,主张采用测试驱动开发(TDD)的方法,即通过测试定义所要开发的功能的接口,然后实现功能的开发过程。TDD通过不断地测试推动代码的开发,既简化了代码,又保证了软件质量。本书采用“手把手”...
测试驱动开发,软件开发人员必备啊,移动工具开发