直接学习该链接汇总起来的,可以直接看这个:https://blog.csdn.net/caohongxing/category_11220107.html
目录:
一、一个简单的Junit单元测试
1.被测代码
2.Junit单元测试步骤
3.Junit注解含义
4.断言的方法
二、插件安装
1.覆盖率EclEmma插件安装使用
2.控制流图插件CFG生成器
一、一个简单的Junit单元测试
实现一下简单的单元测试内容
1.被测代码
import static org.junit.Assert.assertEquals;
public class Calc {
int add(int a,int b)
{
int c ;
c= a+b;
return c;
}
int substract(int a,int b)
{
int c ;
c= a-b;
return c;
}
int mulitple(int a,int b)
{
int c ;
c= a*b+1;
return c;
}
int divid(int a,int b)
{
int c ;
if(b == 0)
{
throw new ArithmeticException("fengmu can not be 0");
}
c= a/b;
return c;
}
public static void main(String args[])
{
Calc c = new Calc();
int r = c.add(2, 1);
if(r==3)
System.out.println("add(1, 2) 结果正确");
else
System.out.println("add(1, 2) 结果错误");
r = c.add(-2, -1);
if(r==-3)
System.out.println("add(-1, -2) 结果正确");
else
System.out.println("add(-1, -2) 结果错误");
}
}
2.Junit单元测试步骤
(1)创建junit测试
(2)测试配置
3)文件运行
此处截图是失败的,因为用例并没有实现
(4)举例加法测试用例编写运行
保存运行后得到(绿色代表通过)
(5)举例除法测试用例编写
3.Junit注解含义
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
public class branchCoverTest {
@BeforeClass
public static void beforemyclass()
{ System.out.println("beforeClass: Before Class"); }
@AfterClass
public static void aftermyclass()
{System.out.println("AfterClass: after class"); }
@Before
public void beforemytest()
{System.out.println("before: before every test case"); }
@After
public void aftermytest()
{System.out.println("After: after every test case"); }
@Test
public void testFun3_01() {
branchCover bc = new branchCover();
bc.fun3(2, 0, 1);
System.out.println("testFun3_01用例执行");
}
@Test
public void testFun3_02() {
branchCover bc = new branchCover();
bc.fun3(2, -1, 1);
System.out.println("testFun3_02用例执行");
}
//@@Ignore 注解表示该测试用例暂不执行
@Ignore
@Test
public void testFun3_03() {
branchCover bc = new branchCover();
bc.fun3(0, -1, 1);
}
}
在该代码中可以看到@BeforeClass、@AfterClass、@Before、@After、@Test、@Ignore注解:
@BeforeClass:在所有测试用例开始前执行,方法必须是静态且没有返回值的
@AfterClass:在所有测试用例完成后执行,方法必须是静态且没有返回值的
@Before:在当前用例执行前执行
@After:在当前用例执行后执行
@Ignore:该测试用例暂不执行
由此可见,该运行情况打印如下
详细注解含义如下:
4.断言的方法
二、插件安装
1.覆盖率EclEmma插件安装使用
(1)点击
(2)在弹出窗口上输入搜索条件 “Coverage”后,点击回车键,找到EclEmma Java Code Coverage安装
(3)运行语句覆盖
红色表示未覆盖
黄色表示部分覆盖
绿色表示覆盖
(4)查看覆盖率
得到
2.控制流图插件CFG生成器
(1)点击
(2)输入http://eclipsefcg.sourceforge.net后,回车
(3)等了好久,终于可以了,然后运行
(4)得到