zoukankan      html  css  js  c++  java
  • 单元测试工具Junit浅谈

    什么是单元测试?

      写了一个类和一些方法,给别人用,会不会有bug?那就测一下这些方法吧

    怎么测?

      用main方法测?不能一起运行,需要人为观察输出是否正确,测试效率低

    单元测试能带来什么好处?

      emmm,重用测试,应对将来的功能的变换;”甩锅“,明确知道自己的代码没问题;“长痛不如短痛”:测试的尽早介入原则,测试贯穿整个开发流程,bug发现的越早,用来修复bug的代价越低
    样例代码和jar包:Coding

    1.选择开发工具

    操作系统 window10
    JDK 1.8.0_71
    开发语言 java
    开发工具 eclipse Mars Release (4.5.0)
    单元测试工具 Junit4.12
    • 我选择的开发工具是eclipse,由于我之前安装过,所以不在这里介绍安装过程,有需要的可以自行百度。

    • 单元测试工具选用的Junit4.12,junit44.8需要的jdk版本是jdk1.5以及以上,junit4.94.12需要jdk1.6以及以上,如果使用的是junit5需要的jdk版本就必须是jdk1.8以及以上。除了junit测试工具,还有TestNG测试框架,有时间的话,后面会出一个教程。

    • 单元测试工具jar包的获取
      - IDE自带

      - 官网获取:https://junit.org/junit4/ 
      - 第三方仓库:http://maven.aliyun.com
      

           http://search.maven.org/
           https://code.google.com/

    2.单元测试过程

    • (1)编写需要被测试的java类
        创建类Calculate

    • (2)编写测试类

      利用Eclipse自带的Junit4进行单元测试,在包名右键->new->JUnite Testt Case;
      

      这里选择JUnit 4 test,测试类名一般为XxxTest,因为我们测试Calculate类,所以测试类名为CalculateTest,点击下面的Class under test旁边的Browse..来选择被测试的类
      
      选中我们被测试类Calculate,点击OK
      
      因为我们选用Eclipse自带的Junit4,所以这里直接勾上Perform the following action,点击OK
      
      

    • (3)运行测试类

    • (4)测试结果展示
      keeps the bar green to keep the code clean

      

    3.参数化自动测试

    • (1)编写测试类
        
    • (4)测试结果展示
        

    4.使用测试套件测试

      在包名上右键->new->other(或者使用快捷键Ctrl+N)。
      

      选中Junit Test Suite,点击Next。
      

      选择JUnit 4 suite,填写套件名AllTests,选择套件需要包含的测试类,点击Finish。
      

      生成的测试套件类如下:。
      

      运行该测试套件类,结果如下:
      

    5、总结

    JUnit4 Annotation

    1. @Test: 测试方法
        a) (expected=XXException.class)
        b) (timeout=xxx)
    2. @Ignore: 被忽略的测试方法
    3. @Before: 每一个测试方法之前运行
    4. @After: 每一个测试方法之后运行
    5. @BeforeClass: 所有测试开始之前运行 一般用于准备测试需要的资源,比如开启和数据库的连接
    6. @AfterClass: 所有测试结束之后运行 用于关闭测试需要的资源,比如关闭跟数据库的连接

    注意

    1. 遵守约定,比如:
        a) 类放在test包中
        b) 类名用XXXTest结尾
        c) 方法用testMethod命名

    最后再贴上一个使用testNG测试框架的博客链接:TestNG 入门教程

  • 相关阅读:
    Java数据结构概述·14
    Java之自定义异常·13
    idea spirng项目jsp页面乱码
    HashMap和LinkedHashMap的区别
    jar包导入仓库中
    后台接口接受前端参数的时候使用包装类和基本类型接受
    转 为什么程序员怕改需求?
    thymeleaf常用标签
    linux查看端口占用情况
    查询linux硬件配置
  • 原文地址:https://www.cnblogs.com/heiren/p/8602795.html
Copyright © 2011-2022 走看看