实验五 单元测试工具(Junit)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二单元测试工具的使用—JUnit
一、实验目的
1、掌握Junit测试框架的使用
2、掌握测试用例的编写
二、基本知识
1、熟悉Java编程语言和Eclipse集成开发环境
2、熟悉单元测试概念
3、熟悉测试设计技术
三、实验环境
①windows操作系统+IE浏览器
②Eclipse集成开发环境+Junit测试框架
四、实验内容
1、学习Junit框架的使用
可通过以下两个示例进行学习。
A、Junit使用方法示例1
1)把Junit引入当前项目库中
新建一个Java 工程—coolJUnit,打开项目coolJUnit的属性页->选择“Java Build Path”子选项->点选“Add Library…”按钮->在弹出的“Add Library”对话框中选择JUnit(图1),并在下一页中选择版本Junit 4 后点击“Finish”按钮。这样便把JUnit引入到当前项目库中了。
图1 为项目添加JUnit库
2)新建单元测试代码目录
单元测试代码是不会出现在最终软件产品中的,所以最好为单元测试代码与被测试代码
创建单独的目录,并保证测试代码和被测试代码使用相同的包名。这样既保证了代码的分离,同时还保证了查找的方便。遵照这条原则,在项目coolJUnit根目录下添加一个新目录testsrc,并把它加入到项目源代码目录中。(见图2、3)。
图2 新建测试代码目录
图3 添加测试代码目录
3)在工程中添加类
添加类SampleCaculator,类中有两个方法,分别计算加减法。编译代码。
package .gzhu;
publicclass SampleCalculator {
//计算两整数之和
publicint add(int augend, int addend){
return augend + addend;
}
//计算两整数之差
publicint subtration(int minuend, int subtrahend){
return minuend - subtrahend;
}
}
4)写单元测试代码
为类SampleCalculator添加测试用例。在资源管理器SampleCalculator.java文件处右击选new>选Junit Test Case(见图4),Source foler选择testsrc目录,点击next,选择要测试的方法,这里把add和subtration方法都选上,最后点finish完成。
图4 新建测试用例
Junit自动生成测试类SampleCalculatorTest,修改其中的代码(如下)。
其中assertEquals断言,用来测试预期目标和实际结果是否相等。
assertEquals( [Sting message], expected, actual )
expected是期望值(通常都是硬编码的),actual是被测试代码实际产生的值,message 是一个可选的消息,如果提供的话,将会在发生错误时报告这个消息。
如想用断言来比较浮点数(在Java中是类型为float或者double的数),则需指定一个额外的误差参数。
assertEquals([Sting message], expected, actual, tolerance)
其它断言参见课本和参考书介绍。测试方法需要按照一定的规范书写:
1. 测试方法必须使用注解org.junit.Test修饰。
2. 测试方法必须使用 public void 修饰,而且不能带有任何参数。
package .gzhu;
importstatic org.junit.Assert.*;
import org.junit.Test;
publicclass SampleCalculatorTest {
SampleCalculator calculator = new SampleCalculator();
@Test
publicvoid testAdd() {
int result = calculator.add(50, 20);
assertEquals(70,result);
}
@Test
publicvoid testSubtration() {
int result = calculator.subtration(50, 20);
assertEquals(30,result);
}
}
5)查看运行结果
在测试类上点击右键,在弹出菜单中选择 Run As JUnit Test。运行结果如下图,绿色的进度条提示我们,测试运行通过了。
图5 示例1运行结果
B、Junit使用方法示例2
1)在工程中添加类
类WordDealUtil中的方法wordFormat4DB( )实现的功能见文件注释。
.gzhu;
package .gzhu;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
publicclass WordDealUtil {
/**
*将Java对象名称(每个单词的头字母大写)按照
*数据库命名的习惯进行格式化
*格式化后的数据为小写字母,并且使用下划线分割命名单词
*
*例如:employeeInfo经过格式化之后变为employee_info
*
*@param nameJava对象名称
*/
publicstatic String wordFormat4DB(String name){
Pattern p = pile("[A-Z]");
Matcher m = p.matcher(name);
StringBufferstrBuffer = new StringBuffer();
while(m.find()){
//将当前匹配子串替换为指定字符串,
//并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里
m.appendReplacement(strBuffer, "_"+m.group());
}
//将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里
return m.appendTail(strBuffer).toString().toLowerCase();
}
}