JUnit单元测试笔记

#01 JUnit简介

1.在项目工程中的Library,add 一个JUnit的Jar包,按需要添加JUnit 3 或 JUnit 4(分为被测试类与测试类较佳)。

2.单元测试是由程序员完成的。

3.Java 5 之前的版本只能 用JUnit 4前的版本(因为JUnit 4用到Java 5的新特性----Annotation注解)。

4.JUnit 4只是工具。

#02  setUp(),tearDown()及相关断言方法。

1.JUnit3 利用反射,JUnit4利用了注解。

2.JUnit3中setUp()初始方法,而tearDown()销毁方法;而JUnit4利用@Before和@After来类似的功能。

3.JUnit3中的测试方法必须是以test开头。

4.单元测试是由程序员编写的,测试被测试代码的某一个很小的、特定的功能区域的代码。它可以用来确保在代码或者程序运行的环境中发生变化后,已经存在的功能还是能够执行的。

5.JUnit3中,每一个类都继承了一个叫做TestCase的类,而TestCase的父类是Assert类;JUnit 4,每一个可以不继承任何的类,但是仍然可以直接使用import static org.junit.assert.*;在JUnit3中,所有的测试类必须都是TestCase的子类;JUnit4中,测试类可以是一个普通类,也可以去继承一个类或者实现一个接口;要实现测试,只需要在要测试的方法之前加@Test 注释。

6.相关断言方法:

 

assertSame()与assertEquals()并不完全相同;same== 相同,equals==相等

#03 @AfterClass 与@BeforeClass用法

1.@AfterClass,@BeforeClass与@After,@Before,跟Java中的 静态块非静态块 功能相类似。

2.@AfterClass,@BeforeClass用例:数据库的连接(只用于一次)。

#04 @Ignore,@Test(expected = ***.class),@Test(timeout = ^[1-9][0-9]*(millisecond))

#05 JUnit中的Failure,Error与Java 中的Exception,Error 的区别

 

JUnit中

Failure指的是由于预期的结果与实际运行的测试的结果不同而导致的實際運行單元的結果不同所導致,例如当使用assertEquals()或其它assertXXX()方法断言失败时,就会报出Failure,如果发现Faulure,你就要去检查你的测试方法或者是被测试方法中编写的逻辑是否有误。

Error指的是编写程序时没有考虑到的问题。在执行测试的断言之前,程序就因为某种类型的意外而停止,比喻说我们在操作数组的时候,因为存取超出索引会引发ArrayIndexOutOfBoundsException,这个时候程序就会报出Error,程序将无法运行下去,提前结束,这个时候你要检查被测试方法中是不是有欠缺考虑到地方。

Java中

Exception: The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch.

The class Exception and any subclasses that are not also subclasses of RuntimeException are checked exceptions. Checked exceptions need to be declared in a method or constructor's throws clause if they can be thrown by the execution of the method or constructor and propagate outside the method or constructor boundary.

Error: An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions. The ThreadDeath error, though a "normal" condition, is also a subclass of Error because most applications should not try to catch it.

A method is not required to declare in its throws clause any subclasses of Error that might be thrown during the execution of the method but not caught, since these errors are abnormal conditions that should never occur. That is, Error and its subclasses are regarded as unchecked exceptions for the purposes of compile-time checking of exceptions.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jqery获取每个月天数_三年级《年、月、日》单元重要知识点整理汇总,以及难点题型解析...

昨天给大家分享了《计算经过的时间》问题,今天给大家分享的是《年、月、日》单元中重要的几个知识点,以及难点题型解析。知识点1 感知年、月、日一、结合生活实际,看看下面事情需要经过多少时间。跑完100米大约需要经过十几(秒)。2.打一场篮球…

FFmpeg源代码简单分析-架构图-编码

参考链接 FFmpeg源代码结构图 - 编码_雷霄骅的博客-CSDN博客_ffmpeg 源码函数背景色 函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用: 粉红色背景函数:FFmpeg的API函数。白色背景的函数:FFmpeg的内部函数。黄色背景的…

为革命,保护视力——为Eclipse更换暗黑皮肤及编辑页面的字体颜色主题

1.在Eclipse中的菜单栏的Help -> Eclipse Market 的 Search栏中输入 Eclipse Moonrise UI Theme ,之后自己执生啦(确保上网配置正确)。 2.与上面操作类似,输入 Eclipse Color Theme,选择安装。 3.选择菜单栏的Win…

FFmpeg源代码简单分析-通用- 内存的分配和释放(av_malloc()、av_free()等)

参考链接 FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)_雷霄骅的博客-CSDN博客_av_malloc 内容介绍 内存操作的常见函数位于libavutil\mem.c中本文记录最常使用的几个函数: av_malloc()av_realloc()av_mal…

FFmpeg源代码简单分析-通用-结构体分析-AVFormatContext

参考链接 FFMPEG结构体分析:AVFormatContext_雷霄骅的博客-CSDN博客_avformatcontext AVFormatContext AVFormatContext是包含码流参数较多的结构体结构体的定义位于libavformat/avformat.h/*** Format I/O context.//格式化 I/O 上下文* New fields can be added…

plsql如何显示表结构图_【论文攻略】排版技巧——如何用 Word 编辑参考文献

每个需要写毕业论文的朋友都会发现,修改文献是一件非常痛苦的事情,虽然现在也有很多软件可以编排参考文献,其实 word 本身就可以。采用合适的编辑方法会方便地做到整齐,规范, 自动排序和交叉引用。 1. 以尾注的方式插入第一个参考文献将光标定…

FFmpeg源代码简单分析-通用-结构体分析-AVCodecContext

参考链接 FFMPEG结构体分析:AVCodecContext_雷霄骅的博客-CSDN博客_avcodeccontext AVCodecContext AVCodecContext是包含变量较多的结构体(感觉差不多是变量最多的结构体)结构体的定义位于avcodec.h关键的变量如下所示(仅仅考虑…

Hello OpenGL——OpenGL在Visual c++6.0安装和配置

1、下载并安装glut库opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows环境下的GLUT下载地址:(大小约为150k) http://www.opengl.org/resources/libraries/glut/glutdlls37…

FFmpeg源代码简单分析-通用-结构体分析-AVIOContext

参考链接 FFMPEG结构体分析:AVIOContext_雷霄骅的博客-CSDN博客_aviocontext AVIOContext AVIOContext是FFMPEG管理输入输出数据的结构体结构体的定义位于位于avio.h关键的变量如下所示 unsigned char *buffer:缓存开始位置int buffer_size&#xff1…

初闻动态规划

前言 本文以一道常见的算法面试题开篇,引入动态规划的基础概念, 介绍其思考过程。 正文 一、常见的一道算法面试题——上台阶 有一个楼梯总共n个台阶,只能往上走,每次只能上1个、2个台阶,总共有多少种走法。 解决…

FFmpeg源代码简单分析-通用-结构体分析-AVCodec

参考链接 FFMPEG结构体分析:AVCodec_雷霄骅的博客-CSDN博客_avcodec AVCodec AVCodec是存储编解码器信息的结构体结构体的定义位于avcodec.h文件中最主要的几个变量 const char *name:编解码器的名字,比较短const char *long_name&#xff…

SLF4J简介与使用(整合log4j)

SLF4J简介与使用(整合log4j) 一、概念 SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logging, logback和log4j。 SLF4J提供了统一的记录…

multism中ui和uo应该怎么表示_王者荣耀:梦泪直播时谈到体验服大改动,表示装备的改动很关键...

王者荣耀的主播梦泪,大家都很熟了,也是一个很强的主播,他对于王者荣耀的理解,还是非常深刻的,而最近王者荣耀的体验服,进行了大改动,也是改变了很多的东西。对此,网友们也是非常的在…

怎么关闭或者卸载ivanti_电脑软件卸载不了怎么办,教您解决电脑软件无法卸载方法技巧...

我们在使用电脑的过程中,肯定会安装各种软件,但是一些软件在使用完之后就不会再使用了,但又无法卸载。下面由小编分享一下电脑安装的软件无法卸载解决方法,如果你在某卸载软件的时候出现无法卸载的情况,不妨通过以下方…

解决Github图片加载失败

问题描述 浏览自己Github某仓库的README.md内时,发现文档的图片始终加载不出,打开浏览器后台,冒出一片红,Failed to load resource: net::ERR_CONNECTION_RESET,如下图所示: 问题分析 可能造成这问题的原…

FFmpeg源代码简单分析-通用-结构体分析-关键结构体之间的关系

参考链接 FFMPEG中最关键的结构体之间的关系_雷霄骅的博客-CSDN博客_ffmpeg 结构体关系 最关键的结构体可以分成以下几类: 解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协…

用Python下载文件

前提条件 需要事先安装requests模块: pip install requests 放码过来 import requestsurl XXX #文件下载来源URL filename #下载到本地后新文件名 r requests.get(url) with open(filename, "wb") as code:code.write(r.content)实战演习 从目标…

FFmpeg源代码简单分析-通用-常见结构体的初始化和销毁(AVFormatContext,AVFrame等)

参考链接 FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)_雷霄骅的博客-CSDN博客 结构体 AVFormatContext:统领全局的基本结构体。主要用于处理封装格式(FLV/MKV/RMVB等&…

FFmpeg源代码简单分析-通用-avio_open2()

参考链接 FFmpeg源代码简单分析:avio_open2()_雷霄骅的博客-CSDN博客_avio_open avio_open2() 该函数用于打开FFmpeg的输入输出文件avio_open2()的声明位于libavformat\avio.h文件中,如下所示。 /*** Create and initialize a AVIOContext for accessi…

用Tomcat构建一个简单图片服务器

前提条件 Tomcat 7.0.90 方法一&#xff1a;修改配置文件 在TOMCAT_HOME/conf/server.xml配置文件内的<Host>内添加一子标签&#xff1a; <Context docBase"C:\exambase\" path"/img"/>方法二&#xff1a;添加Servlet 新建一应用&#xf…