Junit使用的超简单介绍

前言:我对Junit了解的并不多,只是今天突然听到有人提到了它,而且现在时间还早,所以我觉得我不妨更一篇关于Junit4的超级超级简单的用法,全当是为了省去看官网demo的时间吧。这里仅仅谈@Test夹具。

一、JUnit超级简介

1 . 官网

http://junit.org 或者 http://junit.org/junit4/

没有比官网更权威的介绍了。



上图中的4.12,4.11等是JUnit4的版本。JUnit3是必须继承junit.framework.TestCase类的,而且可能还需要其他一些设置。而JUnit4是不需要的。

2. xUnit

xUnit是一套基于测试驱动开发的测试框架,包括:

1. PythonUnit

2. CppUnit

3. JUnit

二、超简单的使用Demo

和其他人一样,谈到JUnit的demo就喜欢用calculate类,我也不例外来以它为例吧。

1. 编写需要被测试的java类

public class Calculate {

    public int add(int a, int b) {
return a + b;
} public int substract(int a, int b) {
return a - b;
} public int multiply(int a, int b) {
return a * b;
} public int divide(int a, int b) {
// 这里只是最简单的测试demo,暂不做容错处理
return a / b;
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2 . 导入Junit







因为这里以Junit4为例,所以这里选Junit4

3.编写测试类

用来测试Calculate类中的add()方法

4. 运行测试类

5 . 测试结果分析



(1). Runs:表示总共有几个测试方法,已经运行了几个;

(2). Errors:表示抛出异常的测试方法的个数;

(3). Failures:表示失败的测试方法的个数;

(4). 打钩:表示通过测试方法。

(5). 另外有个绿色的进度条表示测试成功,红色的进度条则表示测试失败。

demo的结构:

三、完善JUnit

这里稍微规范一下Junit。是基于上述demo的。

1. 在src下新建source Floder取名为test



然后将之前的CalculateTest类连同包一起移动到test文件夹下,如下



2. 自动添加测试方法

假设现在要测试的类里面有很多方法,总不能一个个的手写这些方法吧,所以可以用用IDE了。使用IDE自动生成测试类。因为将上面的CalculateTest类移动到了test目录下,所以这里IDE自动生成的测试Calculate类的测试类取名叫CalculateAutoTest。



其生成步骤如下:

(1). 在被测试的类Calculate上右键new一个JUnit Test Case,如下。







(2). 选择相应要测试的方法



然后就可以看到自动生成的相应的测试方法了。



(3). 同上右键CalculateAutoTest运行

当然这里还没有具体实现,所以测试会失败的。

3. 几个规范点

(1). 测试方法必须使用@Test注解,并且方法必须是public void,不能带任何参数;

(2). 新建一个Source Folder来存放测试代码,但是测试类的包名和被测试类的必须保持一致;

(3). 测试单元中的每个方法必须可以独立,测试方法之间不能有任何的依赖;

(4). 测试类最好使用Test作为类名的后缀,测试方法最好使用test作为方法名的前缀

四、后记

“测试用例不是用来证明你是对的,而是用来证明你没有错”,自己测试除数为0,以及预计结果不对的情况来看看errors和fails,然后体会。

===========无聊分割线=============

草稿箱的“计算机专业的基本素养”都快发霉了。。。

Junit使用的超简单介绍的更多相关文章

  1. 超简单的OpenGL & WebGL & Three.js介绍_1

    专业解释 什么是OpenGL OpenGL(Open Graphics Library即开放图形库或者“开放式图形库”)是用于渲染2D.3D矢量图形的跨语言.跨平台的应用程序编程接口(API). 这个 ...

  2. 把C#程序(含多个Dll)合并成一个Exe的超简单方法

    开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了. 但是,很多时候我们本想开发一款只需要一个exe就能完美运行的小工具.那该怎么办呢? 下文介绍一种超 ...

  3. 简单介绍一下R中的几种统计分布及常用模型

    统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...

  4. jsp学习---使用jsp和JavaBean实现超简单网页计算器

    一.需求 如题,用jsp实现一个超简单的网页计算器. 二.实现 1.效果图 1)初始界面: 2)随便输入两个数进行相乘: 3)当除数为零时提示报错: 2.代码 Calculator.java pack ...

  5. ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例

    一 . 需求 学了这么久的ssh,一直都是别人整合好的框架去写代码,自己实际动手时才发现框架配置真是很坑爹,一不小心就踏错,真是纸上得来终觉浅! 本文将记录整合struts + spring的过程 , ...

  6. TypeC一个微软开发的超简单.NET依赖注入/IoC容器

    控制反转(IoC,Inversion of Control)是由Martin Fowler总结出来的一种设计模式,用来减少代码间的耦合.一般而言,控制反转分为依赖注入(Dependency Injec ...

  7. 超简单的NDK单步调试方法

    令人兴奋的是,ADTr20已经支持JNI单步调试,再也不需要如上这么麻烦的步骤了 你现在需要做的只需以下2步: 1.使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之 ...

  8. SQLite数据库和JPA简单介绍

    SQLite数据库和JPA简单介绍 一.SQLite简单使用 SQLite是遵循ACID的关系数据库管理系统,它的处理速度很快,它的设计目标是嵌入式的,只需要几百K的内存就可以了. 1.下载SQLit ...

  9. 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

    本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...

随机推荐

  1. 用 Qt 控制 Nikon 显微镜的电动物镜转盘

    用 Qt 控制 Nikon 显微镜的电动物镜转盘 最近的一个项目,用到了一台 Nikon 的金相显微镜,并且配了个电动的物镜转盘.为了控制这个电动物镜转盘,我折腾了差不多有4-5天.中间遇到了各种问题 ...

  2. 常用模块(chardet)

    作用:检测二进制的编码格式,不是百分百正确 import chardet f = open('test.txt', 'rb')data = f.read()print(data)result = ch ...

  3. MongoDB复制二:复制集的管理

    1.修改oplog的大小  需要在每个机器上都配置.先在secondary上操作,最后在primary上操作. 1)以单机的方式重启复制集的实例 db.shutdownServer() 在新的端口中启 ...

  4. Python之tornado框架实现翻页功能

    1.结果如图所示,这里将html页面与网站的请求处理放在不同地方了 start.py代码 import tornado.ioloop import tornado.web from controlle ...

  5. HDU 4717 The Moving Points(三分法)(2013 ACM/ICPC Asia Regional Online ―― Warmup2)

    Description There are N points in total. Every point moves in certain direction and certain speed. W ...

  6. HDU 4722 Good Numbers(位数DP)(2013 ACM/ICPC Asia Regional Online ―― Warmup2)

    Description If we sum up every digit of a number and the result can be exactly divided by 10, we say ...

  7. get? post? put? delete? head? trace? options? http请求方法

    http1.1协议里面定义了八种请求方法: get:用作获取,读取数据 post:向指定的资源提交数据 put:更新,向指定的资源上传一个内容,比如说:更新一个用户的头像或者替换掉已有的一个视频 de ...

  8. linux网络编程中需要注意的信号SIGPIPE

    在调试cs时,s端循环收,c端循环发,s端意外崩溃后,c端自动退出,终端提示SIGPIPE导致c端退出.man 7 signal: SIGPIPE Term Broken pipe: write to ...

  9. Linux 常用命令记录(学习笔记)

    不同机器间文件传输(转自:http://www.zhimengzhe.com/mac/323324.html) scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件 ...

  10. SMT(SF)

    示例一: uint iPwmDuty; double temp; temp = (double)AdConvert(AN_TEMPERATURE); temp = temp/; iPwmDuty = ...