测试驱动开发(tdd)学习笔记 (2) 工具,技术 junit
2005-11-27 12:42
543 查看
java 下面最常用的是junit (http://www.junit.org/),
基本用法是
1、import junit 包
2、定义一个测试类,最好以test开头,以方便ide自动搜索测试,测试类继承自TestCase,然后在里面写自己的test 方法,测试代码主要是运行类的各种方法,并用assert判断是否与预期相同。核心的assert 方法有
assertTrue ,assertFalse,assertNull,assertNotNull,assertSame,assertNotSame,assertEquals,还有一个fail直接写fail(),就会提示测试失败。
public class testMath extends TestCase{
public void testSum(){
assertEquals("3加2应该等于5",5,math1.sum(3,2));
}
}
3、如果测试类里面的每个测试都需要初始化某些资源,那么可以把初始化的代码放到测试类的初始化方法(setUp)里面,并在类的拆卸(tearDown)方法里面作善后工作。例如,在作数据库测试的时候,可以在(setUp)方法里面备份当前数据库,并把当前数据库里面的数据恢复为测试数据,并在(tearDown)方法里面将数据库恢复为当前数据。junit 会为每个测试方法运行一次(setUp)和(tearDown),以保证各个测试方法之间互不影响。
public class testMath extends TestCase{
public void setUp(){
初始化代码;
}
public void tearDown(){
善后代码;
}
public void test1(){
.......(测试代码1)
}
public void test2(){
.......(测试代码2)
}
public void test3(){
.......(测试代码3)
}
}
在这个例子里面,(setUp)和(tearDown)会被执行三次。
关于testCase 的管理
多个testCase可以被添加到一个testSuite里面,多个testSuite也可以被加到一个testSuite里面。
public class TestMySuit extends TestSuite{
public TestMySuit(){
super();
}
public static Test suite(){
TestSuite suite = new TestSuite();
suite.addTestSuite(myTest1.class);
suite.addTestSuite(myTest2.class);
return suite;
}
关于junit自己的扩展
1、ActiveTestSuite
在 这个suite里面的每个测试会在独立的线程里面运行,有几个测试,就有几个线程。
2、ExceptionTestCase 作者不建议用这个,既然不建议用,我就没看了
3、testDecorator
顾名思意,这个是对test进装饰的类,抄个书上的例子
public class InstrumentedTest Extends TestDecorator{
public instrumentedTest(Test arg0){
super(arg0);
}
public void run(TestResult result){
System.out.println("Starting "+ fTest.toString());
basicRun(result);
}
}
public class InstrumentedTest Tester extends TestCase{
public void testMethod(){
//...
}
public static Test suite(){
TestSuite suite = new TestSuite();
Test test = new InstrumentedTest Tester("testMethod");
suite.addTest(new instrumentedTest(test));
return suite;
}
public static.void main(String args[]){
junit.textui.TestRunner.run(suite());
}
}
4、RepeatedTest
public class RepeatedTest Tester Extends TestCase{
public void testMethod(){
}
public static void main(String args[]){
Test test = new RepeatedTest Tester("testMethod");
junit.textui.TestRunner.run(new RepeatedTest(test,10));
}
}
5、TestSetup 这个和testCase 的setUp和tearDown类似,不过是用于testSuite。
基本用法是
1、import junit 包
2、定义一个测试类,最好以test开头,以方便ide自动搜索测试,测试类继承自TestCase,然后在里面写自己的test 方法,测试代码主要是运行类的各种方法,并用assert判断是否与预期相同。核心的assert 方法有
assertTrue ,assertFalse,assertNull,assertNotNull,assertSame,assertNotSame,assertEquals,还有一个fail直接写fail(),就会提示测试失败。
public class testMath extends TestCase{
public void testSum(){
assertEquals("3加2应该等于5",5,math1.sum(3,2));
}
}
3、如果测试类里面的每个测试都需要初始化某些资源,那么可以把初始化的代码放到测试类的初始化方法(setUp)里面,并在类的拆卸(tearDown)方法里面作善后工作。例如,在作数据库测试的时候,可以在(setUp)方法里面备份当前数据库,并把当前数据库里面的数据恢复为测试数据,并在(tearDown)方法里面将数据库恢复为当前数据。junit 会为每个测试方法运行一次(setUp)和(tearDown),以保证各个测试方法之间互不影响。
public class testMath extends TestCase{
public void setUp(){
初始化代码;
}
public void tearDown(){
善后代码;
}
public void test1(){
.......(测试代码1)
}
public void test2(){
.......(测试代码2)
}
public void test3(){
.......(测试代码3)
}
}
在这个例子里面,(setUp)和(tearDown)会被执行三次。
关于testCase 的管理
多个testCase可以被添加到一个testSuite里面,多个testSuite也可以被加到一个testSuite里面。
public class TestMySuit extends TestSuite{
public TestMySuit(){
super();
}
public static Test suite(){
TestSuite suite = new TestSuite();
suite.addTestSuite(myTest1.class);
suite.addTestSuite(myTest2.class);
return suite;
}
关于junit自己的扩展
1、ActiveTestSuite
在 这个suite里面的每个测试会在独立的线程里面运行,有几个测试,就有几个线程。
2、ExceptionTestCase 作者不建议用这个,既然不建议用,我就没看了
3、testDecorator
顾名思意,这个是对test进装饰的类,抄个书上的例子
public class InstrumentedTest Extends TestDecorator{
public instrumentedTest(Test arg0){
super(arg0);
}
public void run(TestResult result){
System.out.println("Starting "+ fTest.toString());
basicRun(result);
}
}
public class InstrumentedTest Tester extends TestCase{
public void testMethod(){
//...
}
public static Test suite(){
TestSuite suite = new TestSuite();
Test test = new InstrumentedTest Tester("testMethod");
suite.addTest(new instrumentedTest(test));
return suite;
}
public static.void main(String args[]){
junit.textui.TestRunner.run(suite());
}
}
4、RepeatedTest
public class RepeatedTest Tester Extends TestCase{
public void testMethod(){
}
public static void main(String args[]){
Test test = new RepeatedTest Tester("testMethod");
junit.textui.TestRunner.run(new RepeatedTest(test,10));
}
}
5、TestSetup 这个和testCase 的setUp和tearDown类似,不过是用于testSuite。
相关文章推荐
- 测试驱动开发(tdd)学习笔记 (2) 工具,技术 junit
- APPCAN学习笔记003---原生开发与HTML5技术
- 数据库开发技术与工程实践 学习笔记
- Junit学习笔记之三:测试驱动开发
- AngularJS学习笔记之二:开发、调试和测试工具
- 工作学习笔记——Alljoyn技术、初试Android开发
- Java开发必备技术Junit测试技术学习---源代码演示Junit
- C++ Primer 学习笔记_104_特殊工具与技术 --嵌套类
- Windows驱动开发工具 WDK 学习笔记(1) 分类: windows驱动程序WDM 2013-08-01 11:08 566人阅读 评论(0) 收藏
- .C++ primer第二次阅读学习笔记(第18章:特殊工具与技术:优化内存分配)
- 20、深入浅出MFC学习笔记,开发流程及工具简介
- 【游戏客户端开发】Unity3D 学习笔记2——了解U3D引擎的操作面板和各种工具
- 私房库视频学习笔记-小清新BBS系统开发技术归纳
- Windows驱动开发工具 WDK 学习笔记
- iPhone游戏开发笔记(一):使用到的工具和技术
- python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍
- Windows驱动开发工具 WDK 学习笔记(1)
- C++ Primer 学习笔记_102_特殊工具与技术 --运行时类型识别[续]
- C++ Primer 学习笔记_108(大结局!!!)_特殊工具与技术 --固有的不可移植的特征[下]
- linux学习笔记—— 文本编辑(代码开发工具)——vim之常用命令