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. Hadoop:WordCount分析

    相关代码: package com.hadoop; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.P ...

  2. NSOperation那点事儿

    1. NSOperation.NSOperationQueue 简介 NSOperation.NSOperationQueue 是苹果提供给我们的一套多线程解决方案.实际上 NSOperation.N ...

  3. 问题 C: Goldbach's Conjecture

    题目描述 Goldbach's Conjecture: For any even number n greater than or equal to 4, there exists at least ...

  4. AGV小车典型设计算法及应用

    1. AGV小车的发展背景 在现代化工业的发展中,提倡高效,快速,可靠,提倡将人从简单的工作中解放出来.机器人逐渐替代了人出现在各个工作岗位上.机器人具有可编程.可协调作业和基于传感器控制等特点,自动 ...

  5. 领扣[LeetCode]从零开始[使用C++][1,10]

    0.序 以后不做后端开发是不是就用不到C++了?真香.话不多说,我已经躺倒在第一题上了.不贴题目了,持续更新. 1.两数之和 原文:https://www.cnblogs.com/grandyang/ ...

  6. OpenPAI:大规模人工智能集群管理平台介绍及任务提交指南

    产品渊源: 随着人工智能技术的快速发展,各种深度学习框架层出不穷,为了提高效率,更好地让人工智能快速落地,很多企业都很关注深度学习训练的平台化问题.例如,如何提升GPU等硬件资源的利用率?如何节省硬件 ...

  7. MySQL linux错误处理

    https://cloud.tencent.com/developer/article/1023732 mysql5.7 ERROR 1045 (28000): Access denied for u ...

  8. 多文件上传 input 的multiple 属性

    一.上传多张图片并且预览 HTML: <div class="container"> <label>请选择一个图像文件:</label> < ...

  9. 启动 SQL Server 管理 Studio 在 SQL Server 2008R2 中的错误消息:"无法读取此系统上以前注册的服务器的列表" 解决方法

    问题: 服务器被人直接停掉,重启后,发现sqlserver2008r2 启动管理器报错: "无法读取此系统上以前注册的服务器的列表" 如图: 点击继续,进入后: 解决方法: 点击上 ...

  10. Daily Scrum02 11.29

    今天大家都已经开始了进行第二轮迭代的工作!相比第一轮迭代,每个人都已经有了一定开发经验,这次做起来顺手很多.薛神和肖犇的挑战最大,他们需要实现好友功能,手机间的通信.服务器的搭建都是难点,但他们的热情 ...