TDD这个东东吵吵嚷嚷好多年,但是实践起来就是那么的难,这也是没办法的事--项目已经很紧张了,我们为什么还要花时间在写测试上面? 这么说吧,TDD就好像是一个美女,看着确实很漂亮,可是追到她却需要很大的本钱。好吧,我也不心急,先让我轻轻地靠近你。 那么在对日项目中实行TDD似乎更是难上加难了?因为对日的项目很注重设计文档,他们称之为“详细设计”。详细到什么程度?详细到变量的名字都起好了,写代码的时候,只要照着文档写就可以了---这其实是个神话,也确实是个神话。 ...
如果是先写测试,然后再写实现的代码,那就是测试驱动的开发;如果每写一点代码,就紧
跟着写几个测试来测试这段实现的代码,虽然不是测试驱动,但也很好。
总之,上面的两种方式都重视了测试,而且,随着时间的增长,一定会逐步的形成持续集
成的概念,都是不错的方式。
不过,大部分人都认为测试类很容易写,其实不然。测试类虽然不是交付的产品,但是仍
然非常重要。编写的过程,与真正的产品一样,有我们需要非常注意的地方。
单说构造数据和校验方面吧!下面的图是一个简略的描述:
...
首先我们需要下载NDbUnit ,然后我们建立一个 Console 项目就可以,导入需要的 dll :
NDbUnit.Core.dll, NDbUnit.Test.dll.
此外我们还需要 NUnit ,也就是 nunit.framework.dll。
相比这下,NUnit 的文档要好得多,有教程,有例子,而 NDbUnit 只有一个简单的教程,
和一个 flash的教程。
NDbUnit 的使用非常简单,难的就是数据文件也就是 xml 文件的制作。如果按照 flash 的教程
中所讲的,用vs 2005 导出就非常方便,可惜现在对vs2005 不太熟悉,没找到这个功能,只好
...
使用TDD的方式进行开发,必须要有相应的测试工具才可以,正所谓“欲善其事,先利其器”。
这里就当作是自己的测试工具兵器架吧,以免天长日久,记忆不再犹新了。
Java
基础的兵器当属 JUnit。这个兵器简单易学,而且威力大,已经成为掌握测试的入门兵器了!
要和数据库打交道,当属 DBUtil 和 DBUnit。这两种兵器虽然不太容易,但是用好了也是威力
巨大。而且还可以配合 rhino 来自动生成脚本 ,威力更加增强。
WEB 测试方面,当属 Selenium。这个兵器 ...
最近刚刚接触RCP这个东西,其中如何进行单元测试让我头疼了好几天。
搜索了一下,倒是发现了许多测试工具,但是,要么是收钱的,要么是安装不方便,要么是
使用麻烦。
总之,没找到好用的。
最后,无奈之下,决定使用最古老的方式-----MOCK!这绝对不是一个好的方式,但是,如果你想
自如的进行单元测试,倒是一个可以考虑的方式。
RCP程序不同于WEB程序,RCP的程序就是普通的JAVA类,运行的时候也不需要额外的服务器。
那么,我们能不能象运行一个普通的JAVA类那样来运行一个RCP程序呢?
答案是否定的,因为RCP运行的时候需要RCP的环境。
那么我们就来MOCK!
例如我有 ...
- 16:57
- 浏览 (2317)
- 评论 (1)
- 分类: XP
- 发布在 Eclipse PlugIns&RCP&OSGI 圈子
在DBUnit中使用脚本来生成测试数据
用过rails 的人都会觉得rails的测试中,fixtures 实在是一个非常方便的工具。在Java中,我们通常会使用dbunit 来维护我们的测试数据,但是,dbunit有一个不方便的地方,就是测试数据要手写。虽然我们也可以从数据库中导出来,但这并不是万灵药。
在Rails中,我们可以在fixtures中写ruby 代码,这称为动态fixtures。在dbunit 中如果也能这么做就好了!
首先,如果要实现这个功能,那么肯定涉及动态脚本的内容。自己写一个?太费劲了,浪费时间,最主要是没这个能力:)。
那么怎么办?当然是“站在巨人的肩膀上” ...
//使用dbutils1.0版本
import java.util.*;
import java.util.logging.*;
import java.sql.*;
import org.apache.commons.dbutils.*;
import org.apache.commons.dbutils.handlers.*;
public class TestDBUnits {
public static void main(String[]args) throws Exception {
TestDBUnits test = new TestDB ...
使用dbunit,可以帮助我们在测试中维护数据,也可以辅助我们的测试。
首先当然是下载dbunit, http://dbunit.sourceforge.net
我测试用的是 MYSQL 5.0 。
建立数据库:
create table test1(
id int not null auto_increment,
user_name varchar(50),
primary key(id)) engine=innodb;
保存数据的xml文件:
<dataset>
<test1 user_name="tom"/>
...
- 浏览: 135189 次

- 详细资料
搜索本博客
我的相册
tdd
共 3 张
共 3 张
最新评论
-
TDD,想说爱你不容易
stevenwang 写道这个论题我喜欢。 早想写一点文字,来纪念我TDD的失 ...
-- by kozyan -
测试驱动?很傻很天真
同情,很傻很天真
-- by passyt -
BNF范式
确实很有兴趣,刚刚学习完状态机的部分,对比一下CT中状态机的实现,很有收获
-- by yananay -
BNF范式
看来你对编译知识很有兴趣, 希望你能有所突破. BNF本身并不复杂, 只是表达 ...
-- by javatar -
CT中表达式处理的思考
你考虑的很对, 当时设计时, 我也考虑过这个问题, 在编译原理中, 通常都会把" ...
-- by javatar






评论排行榜