什么是单元测试?

  写了一个类和一些方法,给别人用,会不会有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. HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview

    使用HoloLens时,shell是由你周围的世界和来自系统的全息图像构成.我们将这种空间成为混合世界(mixed world). shell包含了一个可以让你将全息图像和应用放置在世界中的开始菜单( ...

  2. OC学习2——C语言特性之函数

    1.OC是在C语言的基础上进行扩展的,在OC中直接用C语言进行coding也是可以通过编译的.因此,函数定义的语法格式如下: 函数返回值类型 函数名(形参列表) { //由零条或多条可执行性语句组成的 ...

  3. [EXP]Adobe ColdFusion 2018 - Arbitrary File Upload

    # Exploit Title: Unrestricted # Google Dork: ext:cfm # Date: -- # Exploit Author: Pete Freitag of Fo ...

  4. 发布一个关于SharePoint的管理小工具

    源码地址:  https://github.com/GavinHacker/SiteCollectionManager 这是一个C#可执行程序,用于添加,删除,备份,还原SharePoint站点,可以 ...

  5. Java Web——过滤器

    <Java Web开发技术应用——过滤器> 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上.过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进 ...

  6. ubuntu18.04 出现 Command 'ifconfig' not found 问题的解决办法

    我们在虚拟主机中查看ip地址需要输入ifconfig,但是报以下错误: 系统提示我们安装 net-tools,当我们输入以下命令,即可安装完成. sudo apt-get install net-to ...

  7. Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证

    关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...

  8. 当Elasticsearch遇见Kafka

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由michelmu发表于云+社区专栏 Elasticsearch作为当前主流的全文检索引擎,除了强大的全文检索能力和高扩展性之外,对多种 ...

  9. 手撕coreML之yolov2 object detection物体检测(含源代码)

    一些闲话: 前面我有篇博客 https://www.cnblogs.com/riddick/p/10434339.html ,大致说了下如何将pytorch训练的.pth模型转换为mlmodel,部署 ...

  10. VS中C#的快捷键

    Ctrl+E,D: 格式化全部代码 Ctrl+E,C / Ctrl+K,C: 注释选定内容 Ctrl+E,U / Ctrl+K,U: 取消选定注释内容 Ctrl+E,S: 查看空白 Ctrl+E,W: ...