一、安装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函数,并判断是等边、等腰还是无规则三角形,利用三角形三边的性质,容易书写源程序。主要代码如下:
package lab;
public class Triangle {
private int one;
private int two;
private int three;
public static boolean isLegal(int len1, int len2, int len3){
if(len1 <= 0 || len2 <= 0 || len3 <= 0)
return false;
if(len1 + len2 > len3 && len2 + len3 > len1 && len1 + len3 > len2)
return true;
return false;
}
public Triangle(int side_1, int side_2, int side_3){
if(isLegal(side_1, side_2, side_3)){
one = side_1;
two = side_2;
three = side_3;
}
else
one = two = three = 1;
}
public boolean isEquilatera(){
return (one == two && one == three);
}
public boolean isIsosceles(){
return (one == two || one == three || two == three);
}
public boolean isScalene(){
return !isEquilatera();
}
public static void main(String[] args){
Triangle tri = new Triangle(2,2,3);
System.out.println(tri.isEquilatera());
System.out.println(tri.isIsosceles());
System.out.println(tri.isScalene());
}
}
2. 编写测试程序
package lab;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class TriangleTest {
private Triangle tri;
@Before
public void setUp() throws Exception {
tri=new Triangle(2,2,3);
}
@Test
public void testIsEquilatera() {
assertFalse(tri.isEquilatera());
}
@Test
public void testIsIsosceles() {
assertTrue(tri.isIsosceles());
}
@Test
public void testIsScalene() {
assertTrue(tri.isScalene());
}
}
三、实验结果
运行测试用例效果如图:
然后进行覆盖测试:
四、问题及反思
在测试的结果中发现,当有测试出现错误时,左侧的Junit一栏下,将显示红色,并标识出错误的原因;当完全正确时,则显示绿色;
在Coverage一栏下,如果发生错误覆盖率就会降低,如果测试全部正确时,会随着测试数量的增多,覆盖率上升。