JAVA?IDEA?打開(kāi)assert?設(shè)置方式
JAVA IDEA 打開(kāi)assert 設(shè)置
概念
(此處為借鑒前輩們的講解)
斷言(Assertion)是Java中一條語(yǔ)句,包含一個(gè)布爾表達(dá)式,當(dāng)該布爾值為真,程序則被認(rèn)為是正確的;當(dāng)布爾值為假,則系統(tǒng)會(huì)拋出錯(cuò)誤。
斷言兩種語(yǔ)句形式
(此處依舊為借鑒前輩們的講解)
assert Expression1 ; assert Expression1 : Expression2 ;`
Expression1
是一個(gè)布爾表達(dá)式,作為斷言的真假。Expression2
是一個(gè)有返回值的表達(dá)式,用來(lái)提供詳細(xì)的錯(cuò)誤信息。
當(dāng)沒(méi)有Expression2時(shí),默認(rèn)拋出沒(méi)有詳細(xì)信息的 AssertionError。
JAVA 中的 assert(idea)
在寫(xiě)assert語(yǔ)句以后運(yùn)行的時(shí)候發(fā)現(xiàn)并沒(méi)有按預(yù)期的“報(bào)錯(cuò)”,多半是因?yàn)闆](méi)有打開(kāi)idea中的assert!
關(guān)于怎么打開(kāi)其實(shí)很簡(jiǎn)單:Run—> Edit Configurations —>AsserTest —>VM options —>輸入“-ea”就可以了。
但是!
我在打開(kāi)我的Edit Configurations時(shí)。。。并沒(méi)有“AsserTest”。于是再迷茫了一秒鐘后,我自己創(chuàng)建了“AsserTest”,并成功找到“ADD VM options”,然后再?gòu)棾龅膶?duì)應(yīng)個(gè)位置輸入了“-ea”
然后就可以正常運(yùn)行Asser了。
這是相關(guān)語(yǔ)句以及最后報(bào)錯(cuò)的輸出:
(解釋一下 “isUp(a)” 是我自己寫(xiě)的小函數(shù),此時(shí)返回值為 false)
assert isUp( a ) : "is not up!!" ;
JAVA 關(guān)鍵字 assert
為什么assert 兩個(gè)完全不相等的對(duì)象或者基本類型卻不報(bào)錯(cuò),例如圖下
assert new Object() == new Object(); assert 1 == 2;
預(yù)期的會(huì)報(bào)錯(cuò),結(jié)果是沒(méi)有任何反應(yīng)
究其原因其實(shí)是jvm 啟動(dòng)未添加 -ea 參數(shù)用來(lái)開(kāi)啟斷言 一般來(lái)說(shuō),通過(guò)IDE開(kāi)發(fā)工具(IDEA)在執(zhí)行測(cè)試方式時(shí)會(huì)主動(dòng)打開(kāi) -ea
java -ea ...省略... -<className>
但如果沒(méi)有使用這些工具將面臨比較尷尬的困境, 而且問(wèn)題比較隱蔽不容易察覺(jué) 所以建議避免使用assert執(zhí)行測(cè)試方法,改用Junit Assertions.assert*()執(zhí)行測(cè)試方法
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java數(shù)學(xué)歸納法非遞歸求斐波那契數(shù)列的方法
這篇文章主要介紹了java數(shù)學(xué)歸納法非遞歸求斐波那契數(shù)列的方法,涉及java非遞歸算法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Maven Repository倉(cāng)庫(kù)的具體使用
本文主要介紹了Maven Repository倉(cāng)庫(kù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Java程序開(kāi)發(fā)環(huán)境配置圖文教程
這篇文章主要為大家詳細(xì)介紹了Java程序開(kāi)發(fā)環(huán)境配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07springboot實(shí)現(xiàn)分頁(yè)功能的完整代碼
Spring Boot是一個(gè)快速開(kāi)發(fā)框架,它提供了很多便捷的功能,其中包括分頁(yè)查詢,下面這篇文章主要給大家介紹了關(guān)于springboot實(shí)現(xiàn)分頁(yè)功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04詳解Java實(shí)現(xiàn)負(fù)載均衡的幾種算法代碼
本篇文章主要介紹了詳解Java實(shí)現(xiàn)負(fù)載均衡的幾種算法代碼 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02java實(shí)現(xiàn)上傳文件到服務(wù)器和客戶端
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)上傳文件到服務(wù)器和客戶端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01