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.pswp.cn/news/446010.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446010.shtml
英文地址,請注明出處:http://en.pswp.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…

python函數可以作為容器對象嗎_正確理解Python函數是第一類對象

正確理解 Python函數,能夠幫助我們更好地理解 Python 裝飾器、匿名函數(lambda)、函數式編程等高階技術。函數(Function)作為程序語言中不可或缺的一部分,太稀松平常了。但函數作為第一類對象(First-Class Object)卻是 Python 函數的一大特性。那到底什么…

FFmpeg源代碼簡單分析-通用- av_register_all()

參考鏈接 ffmpeg 源代碼簡單分析 : av_register_all()_雷霄驊的博客-CSDN博客_av_register_all()從學齡前開始解讀FFMPEG代碼 之 avcodec_register_all函數_zzyincsdn的博客-CSDN博客

@suppressWarnings(unchecked)及其相關屬性在Java中意思

首先suppressWarnings("unchecked")是JDK1.5中新加入的Annotation語法,用來壓制警告信息的。 編寫代碼時,有時會提示一些警告(例如:使用已經廢棄的類,沒有加入泛型等),如果不想讓程序…

FFmpeg源代碼簡單分析-通用-avcodec_register_all()

參考鏈接 ffmpeg 源代碼簡單分析 : avcodec_register_all()_雷霄驊的博客-CSDN博客

pythonsklearn乳腺癌數據集_Python的Sklearn庫中的數據集

一、Sklearn介紹scikit-learn是Python語言開發的機器學習庫,一般簡稱為sklearn,目前算是通用機器學習算法庫中實現得比較完善的庫了。其完善之處不僅在于實現的算法多,還包括大量詳盡的文檔和示例。其文檔寫得通俗易懂,完全可以當…

FFmpeg源代碼簡單分析-通用- 內存的分配和釋放(av_malloc()、av_free()等)

參考鏈接 FFmpeg源代碼簡單分析:內存的分配和釋放(av_malloc()、av_free()等)_雷霄驊的博客-CSDN博客_av_malloc 內容介紹 內存操作的常見函數位于libavutil\mem.c中本文記錄最常使用的幾個函數: av_malloc()av_realloc()av_mal…

面試題——死鎖的實現

public class DeadLock {public static Object Chopstick_1 new Object();public static Object Chopstick_2 new Object();public static void main(String[] args) {final DeadLock deadLock new DeadLock();// 第一個線程 new Thread(new Runnable() {public void run()…

python回歸分析實驗_python線性回歸實驗

實驗算法python線性回歸實驗【實驗名稱】Python線性回歸實驗【實驗要求】掌握Python線性回歸模型應用過程,根據模型要求進行數據預處理,建模,評價與應用;【背景描述】線性回歸是利用數理統計中回歸分析,來確定兩種或兩…

FFmpeg源代碼簡單分析-通用-結構體分析-AVFormatContext

參考鏈接 FFMPEG結構體分析:AVFormatContext_雷霄驊的博客-CSDN博客_avformatcontext AVFormatContext AVFormatContext是包含碼流參數較多的結構體結構體的定義位于libavformat/avformat.h/*** Format I/O context.//格式化 I/O 上下文* New fields can be added…

log4j詳解與實戰

log4j詳解與實戰 http://www.iteye.com/topic/378077

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提供了統一的記錄…