综述 1. JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。它包括以下特性: 1. 用于测试期望结果的断言(Assertion) 2. 用于共享共同测试数据的测试工具 3. 用于方便的组织和运行测试的测试套件 4. 图形和文本的测试运行器 2. Hamcrest是一个框架,协助编写Java 编程语言的软件测试。它支持创建自定义的断言匹配器,允许定义匹配规则声明。这些匹配器在单元测试框架中使用,如JUnit和jMock。Hamcrest自2012年以来一直被纳入Junit。 3. EclEmma记录在特定程序启动期间执行Java代码的哪些部分。因此覆盖分析总是涉及两个步骤:运行程序,分析覆盖数据。对于可重现的结果,启动的程序通常是自动测试,如JUnit测试。运行覆盖分析就像按下单个按钮一样简单,像现有的运行和调试按钮。覆盖率结果在“ 覆盖率”视图中自动汇总, 并在Java编辑器中突出显示 。 安装Junit 第一种方法:直接使用Eclipse集成的junit 4.1,可以免去下载和配置类库的麻烦。在新建项目的时候点击库选项,然后add library即可。但是不是所有的jar都有自带的,为了更好的学习eclipse的使用,我们可以自己手动引用一下外部的库。 第二种方法:添加外部的jar,首先自己去网上下载相应的包(可以从www.junit.org上下载,也可以从上搜索);然后在新建的项目上右键——》构建路径——》添加外部文档——》找到你下载的jar包即可 安装Hamcrest 方法同安装Junit的第二种方法 安装Eclemma 打开Eclipse,选择菜单栏“帮助”——》Eclipse Marketplace,搜索“Eclemma”,结果如图: 点击安装即可;使用时,右键项目,出现“Coverage As”选项,即说明Eclemma安装成功,选择一种方式运行即可 过程 在测试用例文件中主要引入Junit中的文件,还要在测试类extends TestCase否则assertEquals()函数运行不了。具体参见代码: 代码 Triangle.java
/** * */ package testJunit; import java.util.Scanner; /** * @author think * */ public class Triangle { /** * @param args */ // public static void main(String[] args) { // while(true){ // System.out.print("请输入三角形的三条边,以空格分开:\n"); // Scanner s = new Scanner(System.in); // int a = s.nextInt(); // int b = s.nextInt(); // int c = s.nextInt(); // // System.out.print(check(a, b, c) + "\n"); // } // } public static String check(int a, int b, int c){ String str = ""; if(a == b && b == c){ str = "该三角形为等边三角形"; }else if(a == b || a == c || b ==c){ str = "该三角形为等腰三角形"; }else if(a + b > c && a + c > b && b + c > a){ str = "该三角形为不规则三角形"; }else{ str = "这不是一个三角形"; } return str; } }testCase.java
/** * */ package testJunit; import junit.framework.TestCase; /** * @author think * */ public class testCase extends TestCase { Triangle Tri = new Triangle(); String equilateral = "该三角形为等边三角形"; String isosceles = "该三角形为等腰三角形"; String scalene = "该三角形为不规则三角形"; String nonTri = "这不是一个三角形"; String res; public void testEquilateral(){ res = Tri.check(1, 1, 1); assertEquals(equilateral, res); } public void testIsosceles(){ res = Tri.check(1, 1, 2); assertEquals(isosceles, res); } public void testScalene(){ res = Tri.check(2, 3, 4); assertEquals(scalene, res); } public void testNonTri(){ res = Tri.check(1, 2, 3); assertEquals(nonTri, res); } }结果
