什么是单元测试?

  写了一个类和一些方法,给别人用,会不会有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. .NET手记-JS获取Url参数

    最近为App做活动专区,其中很多活动都是采用html 5页面来制作的.一方面体量较小,制作快速,更新维护容易:另一方面,嵌入App后适配效果也不会很差. 这里我们采用混编形式来从native app传 ...

  2. Spark Graphx

    Graphx    概述        Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求.       ...

  3. 百度Ueditor富文本编辑器 .net版本 任意文件上传执行漏掉修复

    问题描述: 借由上传网络图片功能中可传递可执行文件.后台代码中只做了文件类型的检测未能正确的拦截掉非法文件. 只需将上传地址改为 XXXXXX.jpg?.aspx最终服务上最终存储的文件会变为XXXX ...

  4. android 代码混淆示例

    参考其它资料为项目代码做了一下混淆 项目中使用了 slidingmenu   actionbarsherlock   fastjson  volley   httpclient 等第三方库, 并使用了 ...

  5. 使用Windows的mstsc远程桌面连接到Ubuntu图形界面(AWS上安装的Ubuntu系统)

    参考文档:https://blog.csdn.net/liumaolincycle/article/details/50052619 https://www.cnblogs.com/eczhou/p/ ...

  6. Python学习的路上,Anaconda送你一双遮天神翼

    一.背景 ​ 最近在学习python,发现在本地搭建python环境的时候,要是想要同时搭建不同python版本的环境,就比较麻烦,很容易就出现冲突了,很是头疼.然后光明就出现这山重水复疑无路的时候, ...

  7. nginx如何实现高并发

    nginx如何实现高并发 简单来讲,就是异步,非阻塞,使用了epoll和大量的底层代码优化. 稍微详细一点展开的话,就是nginx的特殊进程模型和事件模型的设计. 进程模型 nginx采用一个mast ...

  8. antd tree组件文件名换行 + 点击展开时,自动收起同级其他展开目录

    1.在项目中用 antd的tree组件的时候,遇到两个问题 1.文件名太长的话 会超出容器 很难看,解决方法如下 ` 引入css在global下设置 :global { .ant-tree li .a ...

  9. Android 内存溢出解决方案(OOM) 整理总结<转>

    在最近做的工程中发现加载的图片太多或图片过大时经常出现OOM问题,找网上资料也提供了很多方法,但自己感觉有点乱,特此,今天在不同型号的三款安卓手机上做了测试,因为有效果也有结果,今天小马就做个详细的总 ...

  10. [AGC 018 E] Sightseeing plan

    STO ZKY ORZ Description 给定一张网格图和三个矩形,每次只能向上或向右走.你需要从矩形 \(A\) 中的一个点 \(S\) 出发,到达矩形 \(B\) 中的一个点 \(P\) , ...