一、安装Junit/harcrest/eclemma
选择使用eclipse作为实验工具,在eclipse上安装这三种jar;
Junit和harcrest安装前,先到相对应的官方网站下载所需要的版本,这里下载的是Junit(4.12)和Hamcrest(all.1.3)版本,下载完成后,在eclipse中新建名为Junit2017的项目,在项目下新建lib文件夹,将这两个jar粘贴到lib文件夹下,并在右击jar点击Build Path,至此,安装完成;
Eclemma的安装相对轻松,点开Help菜单,选择Eclipse Marketplace,搜索eclemma,点击安装即可。
由于安装完Eclemma之后,在下方的菜单栏可能不会出现Coverage栏目,则需要在Window菜单中的Show View中选择出来,有时还需要在Other中的java文件夹下选择。
二、实验步骤
1. 编写源程序
本实验的目的是编写Triangle函数,并判断是等边、等腰还是无规则三角形,利用三角形三边的性质,容易书写源程序。主要代码如下:
public String Equilateral(int a, int b, int c){
String str = "NotEquilateral";
if( a==b && a!=0){
if(b==c){
str="Equilateral";
}
}
return str;
}
public String Isosceles(int a, int b, int c){
String str = "NotIsosceles";
int temp = a-b;
int differ = Math.abs(temp);
//System.out.println("differ");
if(a+b>c && differ<c && a!=0 && b!=0 && c!=0){
if(a==b && a!=c){
str = "Isosceles";
}
else if(a==c && a!=b){
str = "Isosceles";
}
else if(b==c && b!=a){
str = "Isosceles";
}
}
return str;
}
public String Scalene(int a, int b, int c){
String str = "NotScalene";
int temp = a-b;
int differ = Math.abs(temp);
if(a+b>c && differ<c && a!=0 && b!=0 && c!=0){
if(a!=b && b!=c && a!=c){
str = "Scalene";
}
}
return str;
}
2. 编写测试程序
书写完源程序之后,右击源程序文件,新建一个Junit Test Case文件,并将此文件放在另一建好的目录下,修改相应代码段,完成测试,并生成Coverage图。主代码如下:
public Triangle tri;
@Test
public void testEquilateral() {
// fail("Not yet implemented");
tri = new Triangle();
assertEquals("Equilateral",tri.Equilateral(2, 2, 2));
assertEquals("Equilateral",tri.Equilateral(3, 3, 3));
assertEquals("Equilateral",tri.Equilateral(4, 4, 4));
}
@Test
public void testIsosceles() {
//fail("Not yet implemented");
tri = new Triangle();
assertEquals("Isosceles",tri.Isosceles(2, 3, 2));
}
@Test
public void testScalene() {
// fail("Not yet implemented");
tri = new Triangle();
assertEquals("Scalene",tri.Scalene(3, 4, 5));
}
三、实验结果
四、问题及反思
在测试的结果中发现,当有测试出现错误时,左侧的Junit一栏下,将显示红色,并标识出错误的原因;当完全正确时,则显示绿色;
在Coverage一栏下,如果发生错误覆盖率就会降低,如果测试全部正确时,会随着测试数量的增多,覆盖率上升。