首页 > 编程语言 > 详细

廖雪峰Java8JUnit单元测试-1JUnit简介-1JUnit测试

时间:2019-04-16 10:30:04      阅读:135      评论:0      收藏:0      [点我收藏+]

单元测试:

  • 单元测试是针对最小的功能单元编写测试代码
  • Java程序最小的功能单元是方法
  • 单元测试就是针对单个Java方法的测试
    测试驱动开发:Test Driver Development
    技术分享图片
    如下,使用main()方法测试的缺点:
  • 只能有1个main()方法,不能把测试代码分离
  • 没有打印出测试结果和期望结果,例如expected:3628800,but actual:362880
  • 需要一种测试框架,帮助我们编写测试
public class Fact {
    public static void main(String[] args) {
        if(fact(10)==3628800){
            System.out.println("pass");
        }else {
            System.out.println("fail");
        }
    }
    public static long fact(long n){
        long r = 1;
        for(long i=1;i<n;i++){
            r = r * i;
        }
        return r;
    }
}

单元测试的好处:

  • 确保单个方法运行正常
  • 如果修改了方法代码,只需确保其对应的单元测试通过
  • 测试代码本身就可以作为示例代码
  • 可以自动化运行所有测试并获得报告,报告包含成功和失败的用例,以及代码的覆盖率(一般要求70%以上)
    JUnit是一个开源的Java语言的单元测试框架
  • 专门针对Java语言设计,使用最广泛
  • JUnit是事实上的标准单元测试框架

JUnit特点:
使用断言Assertion测试期望结果
可以方便地组织和运行测试
可以方便地查看测试结果
常用IDE(例如Eclipse)都继承了JUnit
可以方便的集成到Maven

JUnit的设计:
TestCase:一个Testcase表示一个测试
TestSuite:一个TestSuite包含一组TestCase,表示一组测试
TestFixture:一个TestFixture表示一个测试环境
TestResult:用于收集测试结果
TestRunner:用于运行测试
TestListener:用于监听测试过程,收集测试数据
Assert:用于断言测试结果是否正确
技术分享图片

使用Assert断言:import static org.junit.Assert.*
断言相等:assertEquals(100,x)
断言数组相等:assertArrayEquals({1,2,3},x)
断言浮点数相等:assertEquals(3.1415,x,0.0001)
断言为null:assertNull(x)
断言为true/false:assertTrue(x>0) assertFalse(x<0)
其他:assertNotEquals/assertNotNull

创建单元测试
1.创建Func.java

import java.util.Arrays;

public class Func {
    public long fact(long n){
        long r = 1;
        for(long i=1;i<=n;i++){
            r = r * i;
        }
        return r;
    }
    public int calculate(String expression){
        String[] ss = expression.split("\\+");
        System.out.println(expression+"=>"+ Arrays.toString(ss));
        int sum=0;
        for(String s:ss){
            sum = sum + Integer.parseInt(s);
        }
        return sum;
    }
}

2.IDEA创建单元测试
2.1根目录下新建test目录,右键->Mark Direcotory as -> Test Sources Root
2.2打开待测试类Func.java,右键->Go to->Test->Create new
总结:

  • 一个TestCase包含一组相关的测试方法
  • 使用Assert断言测试结果(注意浮点数assertEquals要制定误差范围delta)
  • 每个测试方法必须完全独立
  • 测试代码必须非常简单
  • 不能为测试代码再编写测试
  • 测试需要覆盖各种输入条件,特别是边界条件

廖雪峰Java8JUnit单元测试-1JUnit简介-1JUnit测试

原文:https://www.cnblogs.com/csj2018/p/10714954.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!