软件测试上机实验
题目要求:
Function triangle takes three integers a,b,c which are length of triangle sides; calculates whether the triangle is equilateral, isosceles, or scalene.
在Eclipse中安装 Junit(4.12), Hamcrest(1.3),在http://mvnrepository.com/artifact/org.hamcrest/hamcrest-all中可下载
手动添加folder文件夹lib,把Junit和Hamcrest all添加进文件夹,并加入运行文件
然后安装Eclemma,将eclemma压缩包下载下来后解压到Eclipse本地目录的dropins下,重启Eclipse即可,需要删除META-INF文件夹
我的triangle代码:
package cn.tju.scs;
public class Triangle {
public Triangle(){
}
public int ifTriangle(int i,int j,int p){
//等边三角形返回1
if(i == j && j == p){
System.out.println(i);
System.out.println(j);
System.out.println(p);
return 1;
}
//等腰三角形返回2
else if(i == j || j == p || i == p){
System.out.println(i);
System.out.println(j);
System.out.println(p);
return 2;
}
//斜边三角形返回3
else
return 3;
}
}
我的testTriangle代码:
package cn.tju.scs;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class testTriangle {
private Triangle tri;
private int input1;
private int input2;
private int input3;
private int expected;
public testTriangle(int a,int b,int c,int d){
this.input1=a;
this.input2=b;
this.input3=c;
this.expected=d;
}
@Before
public void setUp(){
tri = new Triangle();
}
@Parameters
public static Collection<Object[]> getData(){
return Arrays.asList(new Object[][]{
{3,4,5,3},
{2,3,3,2},
{9,9,9,1}
});
}
@Test
public void judge() {
assertEquals(this.expected, tri.ifTriangle(input1, input2, input3));
}
}
运行结果如图所示:
测试覆盖如下所示: