什么是单元测试?

  写了一个类和一些方法,给别人用,会不会有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 入门教程

单元测试工具Junit浅谈的更多相关文章

  1. Maven的安装配置及初次创建项目与java单元测试工具JUnit

    Maven  安装     1.把maven安装包解压到某个位置     2.配置M2_HOME环境变量指向这个位置 3.在path环境变量中添加;%M2_HOME%\bin 配置镜像 国内的阿里云镜 ...

  2. 前端自动化构建工具-yoman浅谈

    如今随着前端技术的飞速发展,前端项目也变得越来越复杂. 快速的搭建一个集成多种工具和框架的复杂前端项目也越来越成为一种需求. 当然如果你要自己从0开始完全自己diy,绝对可以,只不过需要耗费一些不少的 ...

  3. 11th 单元测试工具JUnit的学习

    1.写好一个简易的四则运算的程序 UnitTest类文件: public class UnitTest { int a; int b; int answer;//正确答案 public int plu ...

  4. 测试 | 单元测试工具 | JUnit | 参数化

    被测试类: package project; public class MyCalendar2 { public int getNumberOfDaysInMonth(int year, int mo ...

  5. 测试 | 单元测试工具 | JUnit

    http://junit.sourceforge.net/javadoc/org/junit/Assert.html 使用: 新建测试类: 在预测试的类上点击右键--->NEW--->Ju ...

  6. Hibernate单元测试工具junit

    相关注解 @Text :测试方法 @Before :初始化方法 @After : 释放资源

  7. Java知识积累——单元测试和JUnit(一)

    说起单元测试,刚毕业或者没毕业的人可能大多停留在课本讲述的定义阶段,至于具体是怎么定义的,估计也不会有太多人记得.我们的教育总是这样让人“欣 慰”.那么什么是单元测试呢?具体科学的定义咱就不去关心了, ...

  8. 单元测试利器 JUnit 4

    引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...

  9. [转]单元测试利器 JUnit 4

    引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...

随机推荐

  1. Java 10 实战第 1 篇:局部变量类型推断

    现在 Java 9 被遗弃了直接升级到了 Java 10,之前也发过 Java 10 新特性的文章,现在是开始实战 Java 10 的时候了. 今天要实战的是 Java 10 中最重要的特性:局部变量 ...

  2. static加载顺序简介

    1.先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关. 2.执行子类的静态代码块和静态变量初始化. 3.执行父类的实例变量初始化 4.执行父类的构造函 ...

  3. Python函数——列表推导式、生成器与迭代器

    列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...

  4. shell编程中的循环语句

    while循环直接从文件中读取 while read line do command done < filename until循环 until 条件 do command done for循环 ...

  5. 课程四(Convolutional Neural Networks),第一周(Foundations of Convolutional Neural Networks) —— 1.Practice questions:The basics of ConvNets

    [解释] 100*(300*300*3)+ 100=27000100 [解释] (5*5*3+1)*100=7600 [中文翻译] 您有一个输入是 63x63x16, 并 将他与32个滤波器卷积, 每 ...

  6. 第一次用python 写的简单爬虫 记录在自己的博客

    #python.py from bs4 import BeautifulSoup import urllib.request from MySqlite import MySqlite global ...

  7. 从零开始学 Web 之 BOM(一)BOM的概念,一些BOM对象

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... +-------------------------------------------------------- ...

  8. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十六):容器部署项目

    容器部署项目 这一章我们引入docker,采用docker容器的方式部署我们的项目. 首先需要有一个linux环境,并且安装 java 和 maven 以及 docker 环境,这个教程多如牛毛,不再 ...

  9. [深度学习]理解RNN, GRU, LSTM 网络

    Recurrent Neural Networks(RNN) 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义 ...

  10. 使用GitHub搭建个人博客

    博客已经从博客园慢慢搬到GitHub  上,可能在博客园上显示不是很规整,可以移步到另外的一个上面看 Blog 两边博客同时更新. 欢迎各位star 和 follower 搭建过程 在搭建博客时候也踩 ...