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类

  1. public class Calculate {
  2. public int add(int a, int b) {
  3. return a + b;
  4. }
  5. public int substract(int a, int b) {
  6. return a - b;
  7. }
  8. public int multiply(int a, int b) {
  9. return a * b;
  10. }
  11. public int divide(int a, int b) {
  12. // 这里只是最简单的测试demo,暂不做容错处理
  13. return a / b;
  14. }
  15. }
    • 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. c#获取当前运行程序所在的目录

    C#获取项目程序及运行路径的方 1.asp.net webform用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”:   2.c# wi ...

  2. windows 系统禁止使用 U 盘的方法

    windows 系统禁止使用 U 盘的方法 最简单的办法: 注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentCntrolSet\Services\USBSTOR] 将名为 ...

  3. LeetCode:24. Swap Nodes in Pairs(Medium)

    1. 原题链接 https://leetcode.com/problems/swap-nodes-in-pairs/description/ 2. 题目要求 给定一个链表,交换相邻的两个结点.已经交换 ...

  4. 还原T4模板执行前的警告对话框

    T4模板在保存的时候都会弹出个对话框,确认是否立即执行,大部分情况下我是不想立即执行的,所以一般都点Cancel,只有想执行的时候才点OK. 今天操作的时候不小心勾选了“Do not show thi ...

  5. 我所认识的XPath

    实例demo 测试demo所需要xml测试数据 <?xml version="1.0" encoding="iso-8859-1"?> <bo ...

  6. jsp 添加jstl标签

    jsp页面中添加下列代码即可使用jstl标签. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix=" ...

  7. Python 3基础教程19-模块导入语法

    本文开始介绍模块导入的一些基本语法,我们现在还在Python自带的IDLE编辑器里写Python代码,如果你要需要一个功能,例如build-in的模块,那么你就需要先导入这个模块,然后才能使用这个模块 ...

  8. 关于python的闭包与装饰器的实验

    首先看闭包,在嵌套函数内添加返回值,可以通过外部函数读取内部函数信息 #encoding=utf-8 #闭包应用 #先定义闭包函数,并使用 def outer(func): def inner(): ...

  9. 解析·NOIP·冷门 CLZ最小环

    赐予我力量,去改变我所能改变的;赐予我勇气,去接受我不能改变的;并赐予我智慧,去分辨这两者. -----安东尼达斯 NOIP的图论题中有一部分是跟图上的环有关的.蒟蒻的我在USACO上刷题时发现了一种 ...

  10. 在阿里云上遇见更好的Oracle(一)

    2003年毕业那年正好遇上非典,好不容易找到一份制造工厂的工作,凭着一点点的SQL基础进入了IT部门,在那里第一次听说了Oracle.在此之前,我对数据库的认知基本还停留在Access阶段,耳闻过一点 ...