在MyEclipse 2014 中使用JUnit-(一)
2016-01-14 10:04
381 查看
一、简介
JUnit是一个开源的java单元测试框架。
1) 提供的API可以让你写出测试结果明确的可重用单元测试用例
2) 提供了三种方式来显示你的测试结果,而且还可以扩展
3) 提供了单元测试用例成批运行的功能
4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导
5) 整个框架设计良好,易扩展
二、入门
下面是利用JUnit进行单元测试的步骤:
1.创建一个Java项目,命名为JUnitTest。
2.右击该java项目,选择Properties,点击Java Build Path->Add Library->JUnit.->JUnit 4.
这样Junit 就被加入到项目中,如下:
3.创建一个Calculator 类,代码如下:
4.创建一个JUnit Test Case ,设置如下:
5.点击Next,
6.系统会自动生成一个TestCalculator 类,只需要稍微修改其中一些代码即可。测试代码如下:
8.运行结果如下:
三、测试代码的放置
三种放置方式:
1、同一目录——针对小型项目
假设有一个项目类,名字为
com.test.business.Account
相应的测试位于
com.test.business.TestAccount
即物理上存在于同一目录
优点是TestAccount能够访问Account的protected成员变量和函数
缺点是测试代码到处都是,且堆积在产品代码的目录中 2、子目录
这个方案是在产品代码的目录之下创建一个test子目录
同上,假设有一个项目类,名字为
com.test.business.Account
相应的测试位于
com.test.business.test.TestAccount
优点是能把测试代码放远一点,但又不置于太远
缺点是测试代码在不同的包中,所以测试类无法访问产品代码中的protected成员,解决的办法是写一个产品代码的子类来暴露那些成员。然后在测试代码中使用子类。
举一个例子,假设要测试的类是这样的:
package com.test.business;
public class Pool{
protected Date lastCleaned;
....
}
为了测试中获得non-public数据,我们需要写一个子类来暴露它
package com.test.business.test;
import com.test.business.Pool;
public class PoolForTesting extends Pool{
public Date getLastCleaned(){
return lastCleaned;
}
....
}
JUnit是一个开源的java单元测试框架。
1) 提供的API可以让你写出测试结果明确的可重用单元测试用例
2) 提供了三种方式来显示你的测试结果,而且还可以扩展
3) 提供了单元测试用例成批运行的功能
4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导
5) 整个框架设计良好,易扩展
二、入门
下面是利用JUnit进行单元测试的步骤:
1.创建一个Java项目,命名为JUnitTest。
2.右击该java项目,选择Properties,点击Java Build Path->Add Library->JUnit.->JUnit 4.
这样Junit 就被加入到项目中,如下:
3.创建一个Calculator 类,代码如下:
package com.demo; public class Calculator { public int add(int a,int b){ return a+b; } public int minus(int a,int b){ return a-b; } public int divide(int a,int b){ return a/b; } public int mul(int a,int b){ return a*b; } }
4.创建一个JUnit Test Case ,设置如下:
5.点击Next,
6.系统会自动生成一个TestCalculator 类,只需要稍微修改其中一些代码即可。测试代码如下:
package com.demo; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.demo.Calculator; public class TestCalculator { Calculator calculator; @Before public void setUp() throws Exception { calculator=new Calculator(); } @After public void tearDown() throws Exception { } @Test public void testAdd() { int rel=calculator.add(12, 22); assertEquals("加法有问题",rel,34); } @Test public void testMinus() { int rel=calculator.minus(24, 12); assertEquals("减法有问题",rel,12); } @Test public void testDivide() { int rel=calculator.divide(24, 12); assertEquals("除法有问题",rel,2); } @Test public void testMul() { int rel=calculator.mul(2, 12); assertEquals("乘法有问题",rel,24); } }7.在TestCalculator右击,选中Run As->JUnit Test
8.运行结果如下:
三、测试代码的放置
三种放置方式:
1、同一目录——针对小型项目
假设有一个项目类,名字为
com.test.business.Account
相应的测试位于
com.test.business.TestAccount
即物理上存在于同一目录
优点是TestAccount能够访问Account的protected成员变量和函数
缺点是测试代码到处都是,且堆积在产品代码的目录中 2、子目录
这个方案是在产品代码的目录之下创建一个test子目录
同上,假设有一个项目类,名字为
com.test.business.Account
相应的测试位于
com.test.business.test.TestAccount
优点是能把测试代码放远一点,但又不置于太远
缺点是测试代码在不同的包中,所以测试类无法访问产品代码中的protected成员,解决的办法是写一个产品代码的子类来暴露那些成员。然后在测试代码中使用子类。
举一个例子,假设要测试的类是这样的:
package com.test.business;
public class Pool{
protected Date lastCleaned;
....
}
为了测试中获得non-public数据,我们需要写一个子类来暴露它
package com.test.business.test;
import com.test.business.Pool;
public class PoolForTesting extends Pool{
public Date getLastCleaned(){
return lastCleaned;
}
....
}
相关文章推荐
- JAVA I/O流的关闭顺序有讲究没有?
- spring rmi
- 安装了ADT 插件的Eclipse 启动时会报Failed to initialize Monitor Thread 这样的错误
- JAVA中的IO流
- JAVA并发处理经验(三)锁的优化与注意
- javaEE之--------Struts2常用标签总结
- 二 java类初始化和对象初始化
- spring 依赖注入
- java中mvn指令
- Eclipse快捷键 10个最有用的快捷键
- [Java]Web过滤器
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- Eclipse
- java环境配置
- java synchronized详解
- mac jdk环境变量
- java中length,length(),size()区别
- 一篇文章学会springMVC
- java流与文件——ZIP文档
- Java日期时间使用总结