软件单元测试Word文件下载.docx
《软件单元测试Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件单元测试Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
杨世伟
班级学号
B12040218
学院(系)
计软院
专业
计科
实验类型
验证
实验学时
2
2015.6.16
一、实验目的和要求
对Java单元测试有初步的了解,学会使用Junit编写自己的测试用例,并对被测试类进行测试。
二、实验环境(实验设备)
硬件:
微机
软件:
win7操作系统,MyEclipse(Java)编程软件
三、实验原理及内容
实验内容:
1.阅读理解Junit的工作机制。
2.Eclipse环境下的单元测试。
3.利用Junit编写测试用例,并对被测试类进行相关功能测试。
a)验证Book类的equals方法;
b)设计Triangle类的测试用例,并进行测试。
实验步骤:
a)验证Book类的equals方法
1.开始—>
程序—>
myEclipseEnterpriseWorkbench5.1.0GA,启动MyEclipse工作环境。
2.File—>
New—>
Project创建一个新的工程,选择JavaProject,如图所示,点击Next。
3.项目名称(Projectname)输入“UnitTest”,点击Next。
4.选中Libraries标签,点击“addLibrary”添加必要的Junit类库。
5.选中Libraries标签,点击“addLibrary”添加必要的Junit类库。
6.选择默认的Junit3.8.1,点击Finish,完成类库的添加,如图所示
7.点击Finish,完成UnitTest项目的设置,进入项目工作界面。
8.在UnitTest上右键,——>
New——>
Class,弹出添加类窗口。
Package中填写cn.edu.njupt,Name中填写Book。
(注意大小写)
9.在Book类中填充内容如下,完成Book类的编写。
10.右键点击UnitTest项目,—>
Other,选择Java下的JUnit下的JUnitTestCase,点击Next:
11.在Package中填写“cn.edu.njupt”,在Name中填写“BookTest”,在Classundertest中填写“cn.edu.njupt”(注意大小写),选中setUp(),teardown()和constructor()三个复选框,点击Next;
在弹出的窗口中选中equals成员函数,所完成的BookTest类如图所示。
12.为BookTest添加两个私有成员变量
privateBookbook1;
privateBookbook2;
13.分别完成setUp()和tearDown()两个成员函数
14.编写测试用例函数testEqualsObject(),使用下列两条语句替换fail(“Notyetimplemented”);
asserFalse(book2.equals(book1));
asserTrus(book1.equals(book1));
15.点击RunAsJUitTest,观察测试运行结果。
b)设计Triangle类的测试用例
要点截图以及代码提供如下。
点击完成,创建Triangle类。
代码如下:
packagecn.edu.njupt;
publicclassTriangle{
//定义三角形的三边
protectedlonglborderA=0;
protectedlonglborderB=0;
protectedlonglborderC=0;
//构造函数
publicTriangle(longlborderA,longlborderB,longlborderC){
this.lborderA=lborderA;
this.lborderB=lborderB;
this.lborderC=lborderC;
}
/**
*判断是否是三角形。
是返回ture;
不是返回false
*/
publicstaticbooleanisTriangle(Triangletriangle){
booleanisTriangle=false;
//判断边界,大于0小于或等于Long.MAX_VALUE,出界返回false
if((triangle.lborderA>
0&
&
triangle.lborderA<
=Long.MAX_VALUE/2)
&
(triangle.lborderB>
triangle.lborderB<
(triangle.lborderC>
triangle.lborderC<
=Long.MAX_VALUE/2)){
//判断两边之和大于第三边
if((triangle.lborderA<
(triangle.lborderB+triangle.lborderC))
(triangle.lborderB<
(triangle.lborderA+triangle.lborderC))
(triangle.lborderC<
(triangle.lborderA+triangle.lborderB))){
isTriangle=true;
returnisTriangle;
*判断三角形类型
*只有两条边相等的三角形返回字符串“等腰三角形”;
*三边均相等的三角形返回字符串“等边三角形”;
*三边均不等的三角形返回字符串“不等边三角形”;
publicstaticStringgetType(Triangletriangle){
StringstrType="
不是三角形"
;
//判断是否是三角形
if(isTriangle(triangle)){
//判断是否是等边三角形
if(triangle.lborderA==triangle.lborderB
triangle.lborderB==triangle.lborderC){
strType="
等边三角形"
//判断是否是不等边三角形
elseif((triangle.lborderA!
=triangle.lborderB)
(triangle.lborderB!
=triangle.lborderC)
(triangle.lborderA!
=triangle.lborderC)){
不等边三角形"
//三角形既非三边全部相等,又非全部不等,只能是部分相等即等腰三角形
else{
等腰三角形"
returnstrType;
}
创建测试用例:
选择要测试的方法:
我将两种方法一起测试以作比较。
但是建议一个测试用例只对一种方法测试。
写入代码如下:
importjunit.framework.TestCase;
publicclassTriTestextendsTestCase{
privateTriangletri1;
privateTriangletri2;
privateTriangletri3;
publicTriTest(Stringarg0){
super(arg0);
protectedvoidsetUp()throwsException{
super.setUp();
tri1=newTriangle(3,4,5);
tri2=newTriangle(4,4,4);
tri3=newTriangle(6,5,5);
protectedvoidtearDown()throwsException{
super.tearDown();
tri1=null;
tri2=null;
tri3=null;
publicvoidtestIsTriangle(){
assertTrue(Triangle.isTriangle(tri1));
assertTrue(Triangle.isTriangle(tri2));
assertTrue(Triangle.isTriangle(tri3));
assertFalse(!
Triangle.isTriangle(tri1));
Triangle.isTriangle(tri2));
Triangle.isTriangle(tri3));
publicvoidtestGetType(){
assertNotNull(Triangle.getType(tri1));
assertNotNull(Triangle.getType(tri2));
assertNotNull(Triangle.getType(tri3));
点击运行,结果会因为实例的不同而不同:
tri1=newTriangle(3,4,5);
tri2=newTriangle(4,4,4);
tri3=newTriangle(6,5,5);
通过上图对比可知,两个方法之间是相互独立的。
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
这次实验主要是熟悉用Java编程软件编写测试用例,以提高代码的质量;
要点在于测试用例的设计,应当站在用户的角度,考虑正常、异常和错误各种情况。
在MyEclipseIDE环境中,有一些快捷键应当熟悉。
在编写测试用例过程中,形成良好的测试习惯。
五、指导教师评语
成绩
批阅人
日期