JAVA?IDEA?打開assert?設(shè)置方式
JAVA IDEA 打開assert 設(shè)置
概念
(此處為借鑒前輩們的講解)
斷言(Assertion)是Java中一條語句,包含一個(gè)布爾表達(dá)式,當(dāng)該布爾值為真,程序則被認(rèn)為是正確的;當(dāng)布爾值為假,則系統(tǒng)會(huì)拋出錯(cuò)誤。
斷言兩種語句形式
(此處依舊為借鑒前輩們的講解)
assert Expression1 ; assert Expression1 : Expression2 ;`
Expression1是一個(gè)布爾表達(dá)式,作為斷言的真假。Expression2是一個(gè)有返回值的表達(dá)式,用來提供詳細(xì)的錯(cuò)誤信息。
當(dāng)沒有Expression2時(shí),默認(rèn)拋出沒有詳細(xì)信息的 AssertionError。
JAVA 中的 assert(idea)
在寫assert語句以后運(yùn)行的時(shí)候發(fā)現(xiàn)并沒有按預(yù)期的“報(bào)錯(cuò)”,多半是因?yàn)闆]有打開idea中的assert!
關(guān)于怎么打開其實(shí)很簡單:Run—> Edit Configurations —>AsserTest —>VM options —>輸入“-ea”就可以了。

但是!
我在打開我的Edit Configurations時(shí)。。。并沒有“AsserTest”。于是再迷茫了一秒鐘后,我自己創(chuàng)建了“AsserTest”,并成功找到“ADD VM options”,然后再彈出的對(duì)應(yīng)個(gè)位置輸入了“-ea”
然后就可以正常運(yùn)行Asser了。

這是相關(guān)語句以及最后報(bào)錯(cuò)的輸出:
(解釋一下 “isUp(a)” 是我自己寫的小函數(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é)果是沒有任何反應(yīng)

究其原因其實(shí)是jvm 啟動(dòng)未添加 -ea 參數(shù)用來開啟斷言 一般來說,通過IDE開發(fā)工具(IDEA)在執(zhí)行測試方式時(shí)會(huì)主動(dòng)打開 -ea
java -ea ...省略... -<className>
但如果沒有使用這些工具將面臨比較尷尬的困境, 而且問題比較隱蔽不容易察覺 所以建議避免使用assert執(zhí)行測試方法,改用Junit Assertions.assert*()執(zhí)行測試方法
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用@ConfigurationProperties注解獲取為null的解決方法
在SpringBoot中,當(dāng)想需要獲取到配置文件數(shù)據(jù)時(shí),除了可以用 Spring 自帶的@Value注解外,SpringBoot還提供了一種更加方便的方式:@ConfigurationProperties,但我們?cè)谕ㄟ^通過get方法去取值一直為null,本文介紹了使用@ConfigurationProperties注解獲取為null的解決方法2024-09-09
手把手帶你實(shí)現(xiàn)一個(gè)萌芽版的Spring容器
大家好,我是老三,Spring是我們最常用的開源框架,經(jīng)過多年發(fā)展,Spring已經(jīng)發(fā)展成枝繁葉茂的大樹,讓我們難以窺其全貌,這節(jié),我們回歸Spring的本質(zhì),五分鐘手?jǐn)]一個(gè)Spring容器,揭開Spring神秘的面紗2022-03-03
java 發(fā)送帶Basic Auth認(rèn)證的http post請(qǐng)求實(shí)例代碼
下面小編就為大家?guī)硪黄猨ava 發(fā)送帶Basic Auth認(rèn)證的http post請(qǐng)求實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
Mybatis實(shí)現(xiàn)聯(lián)表查詢并且分頁功能
這篇文章主要介紹了Mybatis實(shí)現(xiàn)聯(lián)表查詢并且分頁功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Mybatis-plus解決兼容oracle批量插入的示例詳解
Mybatis-Plus 是一個(gè) MyBatis 的增強(qiáng)工具,提供無侵入、損耗小的 CRUD 操作,本文給大家介紹了Mybatis-plus解決兼容oracle批量插入,文中通過大家介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11
Java通過Timer與TimerTask實(shí)現(xiàn)定時(shí)任務(wù)調(diào)度方式
本文介紹了如何在Java中使用`Timer`和`TimerTask`類來實(shí)現(xiàn)定時(shí)任務(wù)調(diào)度,`Timer`類用于創(chuàng)建計(jì)時(shí)器并安排任務(wù),而`TimerTask`類用于定義具體的任務(wù),文章詳細(xì)介紹了這兩個(gè)類的方法和使用示例,包括創(chuàng)建任務(wù)、安排任務(wù)、取消任務(wù)等操作,通過一個(gè)簡單的例子2024-12-12
Java利用自定義注解、反射實(shí)現(xiàn)簡單BaseDao實(shí)例
下面小編就為大家?guī)硪黄狫ava利用自定義注解、反射實(shí)現(xiàn)簡單BaseDao實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
springmvc字符編碼過濾器CharacterEncodingFilter的使用
這篇文章主要介紹了springmvc字符編碼過濾器CharacterEncodingFilter的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2021-08-08
手把手教你用Java給暗戀對(duì)象發(fā)送一份表白郵件
隨著我們學(xué)習(xí)java的深入,也漸漸發(fā)現(xiàn)了它的一些樂趣,比如發(fā)送郵件,下面這篇文章主要給大家介紹了關(guān)于如何利用Java給暗戀對(duì)象發(fā)送一份表白郵件的相關(guān)資料,需要的朋友可以參考下2021-11-11

