1、杨世伟班级学号B12040218学院(系)计软院专 业计科实验类型验证实验学时22015.6.16一、 实验目的和要求对Java单元测试有初步的了解,学会使用Junit编写自己的测试用例,并对被测试类进行测试。二、实验环境(实验设备)硬件:微机软件:win7操作系统,MyEclipse(Java)编程软件三、实验原理及内容实验内容: 1.阅读理解Junit的工作机制。2. Eclipse环境下的单元测试。3.利用Junit编写测试用例,并对被测试类进行相关功能测试。 a) 验证Book类的equals方法; b) 设计Triangle类的测试用例,并进行测试。实验步骤:a) 验证Book类的e
2、quals方法1.开始程序my Eclipse Enterprise Workbench 5.1.0 GA,启动MyEclipse工作环境。2.FileNewProject创建一个新的工程,选择Java Project,如图所示,点击Next。3.项目名称(Project name)输入“UnitTest”,点击Next。4.选中Libraries标签,点击“add Library”添加必要的Junit类库。5.选中Libraries标签,点击“add Library”添加必要的Junit类库。6.选择默认的Junit3.8.1,点击Finish,完成类库的添加,如图所示7.点击Finish,
3、完成UnitTest项目的设置,进入项目工作界面。8.在UnitTest上右键,NewClass,弹出添加类窗口。Package中填写cn.edu.njupt,Name中填写Book。(注意大小写)9.在Book类中填充内容如下,完成Book类的编写。10.右键点击UnitTest项目,Other,选择Java下的JUnit下的JUnit Test Case,点击Next:11.在Package中填写“cn.edu.njupt”,在Name中填写“BookTest”,在Class under test中填写“cn.edu.njupt”(注意大小写),选中setUp(),teardown()和c
4、onstructor()三个复选框,点击Next;在弹出的窗口中选中equals成员函数,所完成的BookTest类如图所示。12.为BookTest添加两个私有成员变量private Book book1;private Book book2;13.分别完成setUp()和tearDown()两个成员函数14.编写测试用例函数testEqualsObject(),使用下列两条语句替换fail(“Not yet implemented”);asserFalse(book2.equals(book1);asserTrus(book1.equals(book1);15.点击Run As JUit
5、Test,观察测试运行结果。b) 设计Triangle类的测试用例要点截图以及代码提供如下。点击完成,创建Triangle类。代码如下:package cn.edu.njupt;public class Triangle / 定义三角形的三边 protected long lborderA = 0; protected long lborderB = 0; protected long lborderC = 0; / 构造函数 public Triangle(long lborderA, long lborderB, long lborderC) this.lborderA = lborder
6、A; this.lborderB = lborderB; this.lborderC = lborderC; /* * 判断是否是三角形。是返回ture;不是返回false */ public static boolean isTriangle(Triangle triangle) boolean isTriangle = false; / 判断边界,大于0 小于或等于Long.MAX_VALUE,出界返回false if (triangle.lborderA 0 & triangle.lborderA triangle.lborderB triangle.lborderC = Long.MA
7、X_VALUE / 2) / 判断两边之和大于第三边 if (triangle.lborderA (triangle.lborderB + triangle.lborderC) (triangle.lborderB (triangle.lborderA + triangle.lborderC) (triangle.lborderC (triangle.lborderA + triangle.lborderB) isTriangle = true; return isTriangle; * 判断三角形类型 * 只有两条边相等的三角形返回字符串“等腰三角形”; *三边均相等的三角形返回字符串“等边
8、三角形”; * 三边均不等的三角形返回字符串“不等边三角形”; public static String getType(Triangle triangle) String strType = 不是三角形 ; / 判断是否是三角形 if (isTriangle(triangle) / 判断是否是等边三角形 if (triangle.lborderA = triangle.lborderB triangle.lborderB = triangle.lborderC) strType = 等边三角形 / 判断是否是不等边三角形 else if (triangle.lborderA != trian
9、gle.lborderB) (triangle.lborderB != triangle.lborderC) (triangle.lborderA != triangle.lborderC) 不等边三角形 / 三角形既非三边全部相等,又非全部不等,只能是部分相等即等腰三角形 else 等腰三角形 return strType;创建测试用例:选择要测试的方法:我将两种方法一起测试以作比较。但是建议一个测试用例只对一种方法测试。写入代码如下:import junit.framework.TestCase;public class TriTest extends TestCase private T
10、riangle tri1; private Triangle tri2; private Triangle tri3; public TriTest(String arg0) super(arg0); protected void setUp() throws Exception super.setUp(); tri1=new Triangle(3,4,5); tri2=new Triangle(4,4,4); tri3=new Triangle(6,5,5); protected void tearDown() throws Exception super.tearDown(); tri1=
11、null; tri2=null; tri3=null; public void testIsTriangle() assertTrue(Triangle.isTriangle(tri1); assertTrue(Triangle.isTriangle(tri2); assertTrue(Triangle.isTriangle(tri3); assertFalse(!Triangle.isTriangle(tri1);Triangle.isTriangle(tri2);Triangle.isTriangle(tri3); public void testGetType() assertNotNu
12、ll(Triangle.getType(tri1); assertNotNull(Triangle.getType(tri2); assertNotNull(Triangle.getType(tri3);点击运行,结果会因为实例的不同而不同:tri1=new Triangle(3,4,5);tri2=new Triangle(4,4,4);tri3=new Triangle(6,5,5);通过上图对比可知,两个方法之间是相互独立的。四、实验小结(包括问题和解决方法、心得体会、意见与建议等) 这次实验主要是熟悉用Java编程软件编写测试用例,以提高代码的质量;要点在于测试用例的设计,应当站在用户的角度,考虑正常、异常和错误各种情况。在MyEclipse IDE环境中,有一些快捷键应当熟悉。在编写测试用例过程中,形成良好的测试习惯。五、指导教师评语成 绩批阅人日 期
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1