综述
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上下载,也可以从CSDN上搜索);然后在新建的项目上右键——》构建路径——》添加外部文档——》找到你下载的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);
}
}
结果