测试驱动开发的理论已经提出好多年了,在这里关于他的原理和优势我就不多说了,我将大略的写一下我在实际中运用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 测试驱动开发是一种软件开发方法,它强调通过编写自动化测试来驱动整个开发过程。TDD 是敏捷开发中的一个核心实践和技术,也是一种设计方法论。其主要包括两方面:测试先行和代码重构。...
在《测试驱动开发的三项修炼——走出TDD丛林》中,作者深入探讨了TDD的核心理念、实践技巧以及常见误区,帮助开发者更好地理解和应用TDD。 一、TDD的基本原则 1. **红灯原则**:首先编写一个不能通过的测试用例...
测试驱动开发(Test-Driven Development, 简称TDD)是一种软件开发实践,强调在编写实际代码之前先编写测试用例。这种方法的核心理念是通过编写能够失败的测试来定义需求,然后编写足够的代码使测试通过,最后重构...
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了 TDD 优势、原理、过程、原则、测试技术、Tips 等方面。 背景 一个...
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际代码之前先编写测试用例。这种做法旨在提高代码质量、可维护性和减少缺陷。Lasse Koskela的作品《测试驱动开发的艺术》深入...
《测试驱动开发的艺术》介绍了一种更快更好的软件开发方法——测试驱动开发。全书共分三部分:第一部分讲述了TDD和ATDD的相关知识、基本概念、方法,为测试驱动开发打下基础;第二部分将测试驱动开发用于具体的实践...
在《测试驱动开发的三项修炼——走出TDD丛林》中,作者深入探讨了如何有效地实践TDD,以提高软件质量和开发效率。以下是关于TDD的三个关键修炼: 1. **理解测试金字塔**:测试金字塔是一个指导原则,它建议我们构建...
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际功能代码之前先编写测试代码。这种做法有助于确保软件的质量,减少bug,并提高代码的可维护性。《测试驱动开发的艺术》这本书...
"Code Kata 和测试驱动开发(TDD)介绍实用 PPT课件" 本课程主要介绍了 Code Kata 和测试驱动开发(TDD)的概念和实践方法,并对软件设计的基本原则进行了详细的讲解。课程共计 13 页,涵盖了软件设计的九个原则,...
测试驱动开发 TDD ,将读者带入XP极限编程的神奇世界!
在《测试驱动开发的3项修炼:走出TDD丛林》一书中,作者王晓毅深入分析了在执行测试驱动开发时常见的问题和挑战,比如测试的编写难以覆盖所有功能点,或者在编写测试时面临设计上的困难。书中提供了实际案例分析,...
测试驱动开发(TDD,Test-Driven Development)是一种软件开发实践,强调先编写测试用例,然后编写刚好能够使测试通过的最小代码量,最后再进行重构以改进代码质量。这种开发方式可以确保代码的可读性、可维护性和正确...
测试驱动开发(Test Driven Development,简称TDD)是一种软件开发方法,强调在编写实际的生产代码之前,先编写能够失败的单元测试。TDD的核心理念是“先测试,后编码”,通过测试来驱动设计,确保软件的质量和可...
教程主题:Visual Studio 2010 TDD 测试驱动开发 实战 教程录制:柳永法 web:http://www.yongfa365.com/ 本教程旨在以最简单的hello world方式像您展示 Visual Studio 2010强大的TDD,推荐任何没接触过VS2010及TDD...
测试驱动开发(TDD)是一种先进的软件开发方法,它的核心理念是“先写测试,后写代码”。在TDD的流程中,开发人员首先编写测试用例,这些测试用例定义了所需功能的行为边界和预期结果。然后,他们会运行这些测试,...
测试驱动开发(TDD)是一种软件开发方法,它要求开发者首先编写失败的单元测试用例,然后再编写足够的代码以使测试通过。接下来,开发者会对代码进行重构以改善设计,同时确保测试依然能够通过。这个过程循环进行,...