首先配置好电脑中的jdk路径。
可以通过cmd中输入java -version来检测是否配置成功,这都是简单的环境变量配置步骤,不多加赘述。
然后在网上下载junit-4.12.jar到工程目录下。下载链接为:http://download.csdn.net/download/qq_21417433/9249785
下载hamcrest-1.3.jar到工程目录。下载链接为http://download.csdn.net/download/fly_fish456/4887448
还有eclemma-2.3.3.zip可在此链接下载:http://download.csdn.net/download/simon_world/8129557
eclemma的安装过程虽然很简单,但是过程也出了一些问题,其中一个就是在文件配置完毕后,重启eclipse并无响应图标出现。最后通过网上查明原来需要删掉压缩包中的META-INF文件夹
感谢博主:http://blog.csdn.net/ufolr/article/details/52713422
成功配置后,就需要进行程序编写。
建立一个工程,工程的格式为:
因为jar包相当于工具包,所以我们在使用之前需要在工程中引用进来。在工程的Configure Build Path中点击Java Build Path,然后Libraries中Add External JARS,然后在文件选择器中选择要添加的jar包即添加进工程路径。所以选择junit-4.12和hamcrest-core-1.3这两个jar包。如果不在同一目录下,可以通过添加两次来将这两个jar包添加进来。
在test文件夹中写测试程序,而在src中写源程序。
其中Main.java文件:
package Triangle; public class Main { private int result=-1; public void equilateral(int a,int b,int c){ if(a+b <= c||a+c <= b||b+c <= a || a-b>=c || a-c >= b || b-c >= a){ int m=a/0; } else if(a==b && b==c){ result = 0; } } public void isosceles(int a,int b,int c){ if(a+b <= c||a+c <= b||b+c <= a || a-b>=c || a-c >= b || b-c >= a){ int m=a/0; } else if((a==b && b!=c) || (a!=b && b==c) || (a==c && a!=b)){ result = 1; } } public void scalene(int a,int b,int c){ if(a+b <= c||a+c <= b||b+c <= a || a-b>=c || a-c >= b || b-c >= a){ int m=a/0; } else if(a!=b && b!=c && a!=c){ result = 2; } } public void reSet(){ result=-1; } public int getResult(){ return result; } }
MainTest.java文件:
package Triangle; import static org.junit.Assert.*; import org.*; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; //import org.junit.internal.runners.TestClassRunner; import org.junit.runner.RunWith; public class MainTest { public static Main mainTest=new Main(); @Before public void setUp() throws Exception { mainTest.reSet(); } @After public void tearDown() throws Exception { } @Test(timeout=1000) public void testequilateral() { mainTest.equilateral(1, 1, 1); assertEquals(0, mainTest.getResult()); } @Test public void testisosceles() { mainTest.isosceles(1, 2, 2); assertEquals(1,mainTest.getResult()); } @Test public void testscalene() { mainTest.scalene(3, 4, 2); assertEquals(2,mainTest.getResult()); } @Ignore("Multiply() Not yet implemented") @Test public void testMultiply() { } @Test(expected =ArithmeticException.class) public void testZero() { mainTest.scalene(5, 1, 2); assertEquals(2,mainTest.getResult()); } }
MainTest中引用了Junit中的测试框架。其中@Before为在测试之前运行的函数;@After为在测试之后运行的函数;@Test为测试用例。
其中由于expected期待的为抛出异常,而如果不能形成三角形并不能抛出异常,所以我用a/0代替处理结果,会抛出 ArithmeticException,这样就能在测试用例中接收错误的测试用例。
最后的测试结果为: