单元测试实验报告

运用Junit进行单元测试

软工0801 孙小宇 [1**********]4

一、实验目的

1、了解Junit4安装过程,进行安装实验。 2、掌握Junit4的使用方法。

3、能够使用Junit4进行简单的测试工作。

二、实验环境

操作系统:Windows XP + SP2 应用系统:JDK1.5、Junit 4.48

三、实验原理

1、取得Junit-4.8.jar文件,将其放至C:\Program Files\Java\ jdk1.5.0\lib目录下,然后将“.;C:\Program Files\Java\jdk1.5.0\lib”加入到ClassPath中。

2、掌握Junit4.4的用法:JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。以下是Junit4定义的一些 Annotations:

. org.junit.Test . org.junit.Before . org.junit.After . org.junit.BeforeClass . org.junit.AfterClass . org.junit.Ignore

. org.junit.runner.RunWith

. org.junit.runners.Suite.SuiteClasses

. org.junit.runners.Parameterized.Parameters:

3、使用Junit4.80测试nextdate包。

nextdate包是一个实现“输入3个参数:年(year)、月(month)、日(day),返回输入日期后面的那个日期”的面向对象程序。该包由1个抽象类(CalendarUnit)、4个具体类(Date、Month、Year、Day)组成。

下面是详细描述。 ① CalendarUnit类

职责:提供一个操作在子类中设置属性值;提供一个布尔操作,说明在子类中的属性是否可以增1。

package nextdate;

public abstract class CalendarUnit { protected int currentPos;

protected void setCurrentPos(int pCurrentPos){ currentPos = pCurrentPos; }

protected int getCurrentPos(){ return currentPos; }

protected abstract boolean increment(); }

② Date类

职责:Date对象由Day、Month和Year 3个对象组成。Date对象通过这三个对象的布尔增量方法增1。如果Day和Month对象不能加1,则Date根据需要重新设置Day和Month;如果是一年的最后一天,则Year也要加1。printDate操作通过Day、Month和Year对象中的get()成员函数,以mm/dd/yyyy格式输出日期。

package nextdate; public class Date { private Day d; private Month m; private Year y;

public Date(int pMonth, int pDay, int pYear) { y = new Year(pYear); m = new Month(pMonth,y); d = new Day(pDay,m); }

public void increment(){ if(! d.increment()){ if(! m.increment()){ y.increment(); m.setMonth(1,y); }

d.setDay(1,m); }

}

public void printDate(){

System.out.println(m.getMonth()+"/"+d.getDay()+"/"+y.getYear()); } }

③ Day类

职责:Day对象有一个私有Month属性,用以决定Day取值是要加1还是复位。如果复位,Month属性值需增加1。提供get()和set()服务,以及所继承的布尔增量方法。

package nextdate;

public class Day extends CalendarUnit{ private Month m;

public Day(int pDay, Month m) { setDay(pDay,m); }

public boolean increment(){ currentPos+=1;

if(currentPos

public void setDay(int pDay, Month m){ setCurrentPos(pDay); this.m = m; }

public int getDay(){ return currentPos; } }

④ Month类

职责:Month对象有一个私有Year属性,用以决定2月份是闰月还是平月。Month对象有一个私有数组属性,用以保存每月份的最后一天。提供get()和set()服务,以及所继承的布尔增量方法

package nextdate;

public class Month extends CalendarUnit{ private Year y;

private int[] sizeIndex = {31,28,31,30,31,30,31,31,30,31,30,31};

public Month(int pMonth, Year y) {

setMonth(pMonth,y); }

public void setMonth(int pMonth, Year y){ setCurrentPos(pMonth); this.y = y; }

public int getMonth(){ return currentPos; }

public int getMonthSize(){

if (y.isLeap()) sizeIndex[1] = 29; else sizeIndex[1] = 28;

return sizeIndex[currentPos - 1]; }

public boolean increment(){ currentPos += 1;

if(currentPos > 12) return false; else return true; } }

⑤ Year类

职责:提供一个布尔服务,说明当前值是否为闰年。提供get()和set()服务,以及所继承的布尔增量方法。

package nextdate;

public class Year extends CalendarUnit{ public Year(int pYear) { setCurrentPos(pYear); }

public int getYear(){ }

public boolean increment(){ currentPos = currentPos + 1; return true; }

public boolean isLeap(){

if (((currentPos % 4 ==0) && (currentPos % 400 != 0)) || (currentPos % 400 ==0))

return true; else return false; } }

四、实验结果

. 等价类划分:划分输入数据

. 根据以上分析设计测试用例:

五、实验总结

本次测试涉及预期测试需求,其他各个模块均已实现,测试功能正常,所发现的bug也已修复并验证通过。对比原计划的完成准则:“所有测试用例都覆盖;最后一次回归测试发现缺陷数:0,本次测试已圆满完成,且所测功能已满足需求及质量标准。

运用Junit进行单元测试

软工0801 孙小宇 [1**********]4

一、实验目的

1、了解Junit4安装过程,进行安装实验。 2、掌握Junit4的使用方法。

3、能够使用Junit4进行简单的测试工作。

二、实验环境

操作系统:Windows XP + SP2 应用系统:JDK1.5、Junit 4.48

三、实验原理

1、取得Junit-4.8.jar文件,将其放至C:\Program Files\Java\ jdk1.5.0\lib目录下,然后将“.;C:\Program Files\Java\jdk1.5.0\lib”加入到ClassPath中。

2、掌握Junit4.4的用法:JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。以下是Junit4定义的一些 Annotations:

. org.junit.Test . org.junit.Before . org.junit.After . org.junit.BeforeClass . org.junit.AfterClass . org.junit.Ignore

. org.junit.runner.RunWith

. org.junit.runners.Suite.SuiteClasses

. org.junit.runners.Parameterized.Parameters:

3、使用Junit4.80测试nextdate包。

nextdate包是一个实现“输入3个参数:年(year)、月(month)、日(day),返回输入日期后面的那个日期”的面向对象程序。该包由1个抽象类(CalendarUnit)、4个具体类(Date、Month、Year、Day)组成。

下面是详细描述。 ① CalendarUnit类

职责:提供一个操作在子类中设置属性值;提供一个布尔操作,说明在子类中的属性是否可以增1。

package nextdate;

public abstract class CalendarUnit { protected int currentPos;

protected void setCurrentPos(int pCurrentPos){ currentPos = pCurrentPos; }

protected int getCurrentPos(){ return currentPos; }

protected abstract boolean increment(); }

② Date类

职责:Date对象由Day、Month和Year 3个对象组成。Date对象通过这三个对象的布尔增量方法增1。如果Day和Month对象不能加1,则Date根据需要重新设置Day和Month;如果是一年的最后一天,则Year也要加1。printDate操作通过Day、Month和Year对象中的get()成员函数,以mm/dd/yyyy格式输出日期。

package nextdate; public class Date { private Day d; private Month m; private Year y;

public Date(int pMonth, int pDay, int pYear) { y = new Year(pYear); m = new Month(pMonth,y); d = new Day(pDay,m); }

public void increment(){ if(! d.increment()){ if(! m.increment()){ y.increment(); m.setMonth(1,y); }

d.setDay(1,m); }

}

public void printDate(){

System.out.println(m.getMonth()+"/"+d.getDay()+"/"+y.getYear()); } }

③ Day类

职责:Day对象有一个私有Month属性,用以决定Day取值是要加1还是复位。如果复位,Month属性值需增加1。提供get()和set()服务,以及所继承的布尔增量方法。

package nextdate;

public class Day extends CalendarUnit{ private Month m;

public Day(int pDay, Month m) { setDay(pDay,m); }

public boolean increment(){ currentPos+=1;

if(currentPos

public void setDay(int pDay, Month m){ setCurrentPos(pDay); this.m = m; }

public int getDay(){ return currentPos; } }

④ Month类

职责:Month对象有一个私有Year属性,用以决定2月份是闰月还是平月。Month对象有一个私有数组属性,用以保存每月份的最后一天。提供get()和set()服务,以及所继承的布尔增量方法

package nextdate;

public class Month extends CalendarUnit{ private Year y;

private int[] sizeIndex = {31,28,31,30,31,30,31,31,30,31,30,31};

public Month(int pMonth, Year y) {

setMonth(pMonth,y); }

public void setMonth(int pMonth, Year y){ setCurrentPos(pMonth); this.y = y; }

public int getMonth(){ return currentPos; }

public int getMonthSize(){

if (y.isLeap()) sizeIndex[1] = 29; else sizeIndex[1] = 28;

return sizeIndex[currentPos - 1]; }

public boolean increment(){ currentPos += 1;

if(currentPos > 12) return false; else return true; } }

⑤ Year类

职责:提供一个布尔服务,说明当前值是否为闰年。提供get()和set()服务,以及所继承的布尔增量方法。

package nextdate;

public class Year extends CalendarUnit{ public Year(int pYear) { setCurrentPos(pYear); }

public int getYear(){ }

public boolean increment(){ currentPos = currentPos + 1; return true; }

public boolean isLeap(){

if (((currentPos % 4 ==0) && (currentPos % 400 != 0)) || (currentPos % 400 ==0))

return true; else return false; } }

四、实验结果

. 等价类划分:划分输入数据

. 根据以上分析设计测试用例:

五、实验总结

本次测试涉及预期测试需求,其他各个模块均已实现,测试功能正常,所发现的bug也已修复并验证通过。对比原计划的完成准则:“所有测试用例都覆盖;最后一次回归测试发现缺陷数:0,本次测试已圆满完成,且所测功能已满足需求及质量标准。


相关内容

  • 射频实验报告
  • 射频电路实验报告 学 专 学 生指 导 学年第学期 院: 信息与通信工程学院 业: 电子信息科学与技术 姓 名: 学 号: 教 师: 李永红 日期: 2012 年10 月28日 实验一 滤波器设计 一. 实验目的 (1) 掌握基本的低通和带通滤波器的设计方法. (2) 学会使用微波软件对低通和高通滤 ...

  • 减法反应时实验报告
  • 减法反应时实验报告 周炜 (上海体育学院 运动科学学院09级心理班 上海 200438) 摘要:减法反应时是将反应时间分解成各个成分,然后分析加工的过程.又称为唐得斯减数法.减法技术是以反应时作为资料来源,在研究快速的信息加工过程常被用到,因而又被称为减法反应时法.减法反应时实验包括简单反应A ,选 ...

  • 软件测试各过程的意义
  • 软件测试过程 海辉软件应用测试部门在长期的行业测试经验中,在软件测试过程模型方面总结出了如下图所示的改进W模型: 软件测试改进W模型 相对于传统V模型,W模型更科学,由一个开发的"V"和一个与之并行的测试"V"组成,体现了"尽早地和不断地进行软件测试 ...

  • 软件测试实验1
  • 集美大学软件测试课程实验报告 课程名称:软件测试 指导教师:曾华朴 班级:软件1371 实验成绩: 姓名:张荣鹏 罗艺达 郑英才 周文彬 林佳东 实验项目名称:单元测试Junit 学号:[1**********]1 上机实践日期:2014.10.11 一. 实验项目 简易计算器单元测试Junit 二 ...

  • 002专题二 样品采样与实验室分析报告
  • 专题二 样品采样与实验室分析报告 1.样品采集方法和工具 1.1土壤样品采集具有代表性 土壤样品采集是土壤测试的一个重要环节,是整个测土配方施肥工作的基础.如果样品采集代表性不强,采集方法不标准,土壤化验精度再高,对测土配方施肥的作用也不大.保证土壤样品的代表性,控制采样误差,必须做好以下几点: ✧ ...

  • 汽车电控实训报告(12汽车检测2)
  • 实训课题:发动机电子控制系统总体结构认识 指导教师:李志伟.章建军 日期:2014年 4月8日 实训目的及要求 1.了解发动机电子控制系统总体结构 2.识别发动机电子控制系统的主要传感器.执行器 仪器设备 1.电控常用工具2套 2.桑塔纳AJR电喷发动机故障实验台两台 实训原理和工作图: 发动机电子 ...

  • 中南大学运控实验报告
  • 附一 逻辑无环流系统实验报告 一.实验目的: 1) 熟悉和掌握逻辑无环流可逆调速系统的调试方法和步骤: 2) 通过实验,分析和研究系统的动.静态特性,并研究调节的参数对动态品质的影响: 3) 通过实验,提高自身实际操作技能,培养分析和解决问题的能力. 二.实验内容: (2)各控制单元调试: (3)整 ...

  • 光纤通信实验指导书
  • 光纤通信实验指导书 (2011年试用版) 广东石油化工学院计算机与电子信息学院2011年9月 目 录 前言 „„„„„„„„„„„„„„„„„„„„„„„„„„3 实验一 实验二 实验三 实验四 附页 数字基带信号实验 „„„„„„„„„„„„„„„4 数字信号电光.光电转换传输实验 „„„„„„„ ...

  • AATCC 16 2004 耐光色牢度 中文翻译
  • 耐光色牢度 1964年由AA TCC 委员会RA50制定:于1971.1974.1978.1981.1982.1990(取代了AA TCC 16-1987.16A-1988.16C-1988.16D-1988.16E-1987.16F-1988和16G-1985).1993.2003.2004年进行 ...