第一次实验 Junit简单test三角形的小程序
1 使用Junit首先要导入两个jar包,分别是hamcrest-all-1.3.jar和junit-4.12.jar。下载后,导入即可。
2 安装eclemma。首先下载下来,然后拷贝到ecilipse安装目录的dropins文件夹下,删除ecilipse安装目录下的update文件,然后重启ecilipse,当发现ecilipse上有这样一个按钮时,说明Emma安装成功。
3 接下来编写test代码。与src同级新建一个source folder,在两个source folder下都新建pacage,两个pacage命名相同(比如lab1),在src的lab1下新建一个.java文件,calculate.java,里面的内容如下
package lab1; public class calculate { private static int result = 0; public void triangle(int a,int b,int c) { if(a<=0 || b<=0 || c<=0) { result = 0;//边长必须大于0 } else { if(((a+b)>c) && ((a+c)>b && (b+c)>a)) { if((a == b) &&(a == c)) { result = 3;//等边 } if((a==b && a!=c)||(a==c && a!=b)||(b==c && a!=b)) { result = 2;//等腰 } if(a!=b && a!=c && b!=c) { result = 1;//普通 } } else { result = 0;//不满足两边之和大于第三边的不是三角形 } } } public int getReuslt(){ return result; } public void clear(){ result = 0; } }
这是用来判断三角形类型的java类。
在test的lab1下新建testcal.java,用来写测试程序
package lab1; import static org.junit.Assert.*; import org.junit.Test; public class testcal { private static calculate cal = new calculate(); @Test public void testTriangle(){ cal.triangle(5, 5, 5); assertEquals(3, cal.getReuslt()); cal.triangle(5, 5, 6); assertEquals(2, cal.getReuslt()); cal.triangle(3, 4, 5); assertEquals(1, cal.getReuslt()); cal.triangle(12, 5, 5); assertEquals(0, cal.getReuslt()); } }
运行结果如下
这个测试数据的结果和预期相同,说明此测试用例没有找出程序的错误。绿色部分为corvered。
上图是当我们故意写错一个test用例时,(6,5,5)应该是等腰,预期是2,不是0.(2代表等腰,0代表不是三角形),运行后,出现一个failure。