Junit使用的超简单介绍
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使用的超简单介绍的更多相关文章
- 超简单的OpenGL & WebGL & Three.js介绍_1
专业解释 什么是OpenGL OpenGL(Open Graphics Library即开放图形库或者“开放式图形库”)是用于渲染2D.3D矢量图形的跨语言.跨平台的应用程序编程接口(API). 这个 ...
- 把C#程序(含多个Dll)合并成一个Exe的超简单方法
开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了. 但是,很多时候我们本想开发一款只需要一个exe就能完美运行的小工具.那该怎么办呢? 下文介绍一种超 ...
- 简单介绍一下R中的几种统计分布及常用模型
统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...
- jsp学习---使用jsp和JavaBean实现超简单网页计算器
一.需求 如题,用jsp实现一个超简单的网页计算器. 二.实现 1.效果图 1)初始界面: 2)随便输入两个数进行相乘: 3)当除数为零时提示报错: 2.代码 Calculator.java pack ...
- ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例
一 . 需求 学了这么久的ssh,一直都是别人整合好的框架去写代码,自己实际动手时才发现框架配置真是很坑爹,一不小心就踏错,真是纸上得来终觉浅! 本文将记录整合struts + spring的过程 , ...
- TypeC一个微软开发的超简单.NET依赖注入/IoC容器
控制反转(IoC,Inversion of Control)是由Martin Fowler总结出来的一种设计模式,用来减少代码间的耦合.一般而言,控制反转分为依赖注入(Dependency Injec ...
- 超简单的NDK单步调试方法
令人兴奋的是,ADTr20已经支持JNI单步调试,再也不需要如上这么麻烦的步骤了 你现在需要做的只需以下2步: 1.使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之 ...
- SQLite数据库和JPA简单介绍
SQLite数据库和JPA简单介绍 一.SQLite简单使用 SQLite是遵循ACID的关系数据库管理系统,它的处理速度很快,它的设计目标是嵌入式的,只需要几百K的内存就可以了. 1.下载SQLit ...
- 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2
本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...
随机推荐
- PHP HashTable总结
本篇文章主要是对 PHP HashTable 总结,下面的参考链接是很好的学习资料. 总结 HashTable 又叫做散列表,是一种用于以常数平均时间执行插入.删除和查找的技术.不能有效的支持元素之间 ...
- 【转】谈谈 iOS 中图片的解压缩
转自:http://blog.leichunfeng.com/blog/2017/02/20/talking-about-the-decompression-of-the-image-in-ios/ ...
- Date()日期函数浏览器兼容问题踩坑
原文:Date()日期函数浏览器兼容问题踩坑 之前用layui做的一项目中,table中用到了日期格式化的问题.直接没多想,撸代码就完了呗,结果最近一段时间客户反馈说显示日期跟录入日期不一样(显示日期 ...
- C++11中initializer lists的使用
Before C++11,there was no easy way to do things like initialize a std::vector or std::map(or a custo ...
- Scala学习笔记(三):基础知识
有了可运行的环境,就需要写一些简单的语句来认识一下Scala,本文没有写那么详细,只是为了方便查看.唤起回忆 (1)变量的定义方法 Scala有两种变量 var val 注意:在解释器中,可以用一个之 ...
- JS运行在服务器端注意事项
<script runat="server" language="javascript"> </script> 1. ASP利于JS重载 ...
- PHP实现字节数Byte转换为KB、MB、GB、TB
function getFilesize($num) { $p = 0; $format = 'bytes'; if( $num > 0 && $num < 1024 ) ...
- Tensorflow多线程输入数据处理框架
Tensorflow提供了一系列的对图像进行预处理的方法,但是复杂的预处理过程会减慢整个训练过程,所以,为了避免图像的预处理成为训练神经网络效率的瓶颈,Tensorflow提供了多线程处理输入数据的框 ...
- NO9——线段相关
#include <stdio.h> #include <iostream> #include <math.h> #include <algorithm> ...
- [Java文件操作] 为文本文件添加行号
[思路]将文件中的内容按行读取存入一个字符串中,在输出时再为每一行加上行号. import java.io.*; public class Text { private String strFinal ...