解決報(bào)java.lang.AssertionError錯(cuò)誤的問(wèn)題
報(bào)java.lang.AssertionError錯(cuò)誤
在使用Assert.assertEquals時(shí)報(bào)一個(gè)錯(cuò)誤

首先我們的明白Assert的用法
assert <boolean表達(dá)式>
- 如果<boolean表達(dá)式>為true,則程序繼續(xù)執(zhí)行。
- 如果為false,則程序拋出AssertionError,并終止執(zhí)行
assert <boolean表達(dá)式> : <錯(cuò)誤信息表達(dá)式>
- 如果<boolean表達(dá)式>為true,則程序繼續(xù)執(zhí)行。
- ?如果為false,則程序拋出java.lang.AssertionError,并輸出<錯(cuò)誤信息表達(dá)式>。
ctrl點(diǎn)進(jìn)Assert.assertEquals發(fā)現(xiàn)

進(jìn)行的是判斷兩個(gè)Object類型的值,他們兩個(gè)比較的是引用地址是否相等, 并沒(méi)有對(duì)內(nèi)容進(jìn)行比較:
如果兩者一致, 程序繼續(xù)往下運(yùn)行.
如果兩者不一致, 中斷測(cè)試方法, 拋出異常信息 AssertionFailedError
而我寫(xiě)的斷言是這樣的:
Assert.assertEquals(7, userList.size());
錯(cuò)誤中明顯指出,Excepted是7,actual是8,因此兩個(gè)值不一致,報(bào)錯(cuò)誤
因此把7改成8就行
Assert.assertEquals(8, userList.size());
java.lang.AssertionError: Expected:2 Actual:9
我是在單元測(cè)試find的jdbc代碼時(shí)遇到的
單元測(cè)試代碼如下
? ? @Test
? ? public void testFind() throws Exception {
? ? ? ? //構(gòu)建測(cè)試數(shù)據(jù)
? ? ? ? //創(chuàng)建目標(biāo)類的對(duì)象
? ? ? ? CategoryDaoImpl dao = new CategoryDaoImpl();
? ? ? ? //調(diào)用對(duì)象的目標(biāo)方法
? ? ? ? List<Category> list = dao.find();
? ? ? ? int actual = list.size();
? ? ? ? int expected = 2;
? ? ? ? //使用斷言類的方法判斷;比較實(shí)際和預(yù)計(jì)的結(jié)果
? ? ? ? Assert.assertEquals(actual, expected);
? ? }如果你也報(bào)了如題的錯(cuò)誤,
你看看你的數(shù)據(jù)庫(kù)數(shù)據(jù)條數(shù)是不是和expected的2不一樣
是不是錯(cuò)誤里寫(xiě)的actual 的值,比如我的數(shù)據(jù)庫(kù)就有9條
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java利用隨機(jī)分錢(qián)模擬財(cái)富變化
這篇文章主要為大家詳細(xì)介紹了Java如何利用隨機(jī)分錢(qián)思想模擬財(cái)富的變化,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12
詳解Java中的線程讓步y(tǒng)ield()與線程休眠sleep()方法
Java中的線程讓步會(huì)讓線程讓出優(yōu)先級(jí),而休眠則會(huì)讓線程進(jìn)入阻塞狀態(tài)等待被喚醒,這里我們對(duì)比線程等待的wait()方法,來(lái)詳解Java中的線程讓步y(tǒng)ield()與線程休眠sleep()方法2016-07-07
迅速掌握J(rèn)ava容器中常用的ArrayList類與Vector類用法
這篇文章主要介紹了Java容器中常用的ArrayList類與Vector類用法,文中只對(duì)其最基本的功能給出了示例代碼,需要的朋友可以參考下2015-11-11
Java 方法引用與ambda表達(dá)式的聯(lián)系
這篇文章主要介紹了Java 方法引用與ambda表達(dá)式的聯(lián)系,方法引用通過(guò)方法的名字來(lái)指向一個(gè)方法, 方法引用同樣是Java 8 引入的新特性,而且和Lambda表達(dá)式有著不小的聯(lián)系,它同樣可以根據(jù)上下文進(jìn)行推導(dǎo),進(jìn)而可以簡(jiǎn)化代碼2022-06-06
Java easyui樹(shù)形表格TreeGrid的實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Java easyui樹(shù)形表格TreeGrid的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案
這篇文章主要介紹了關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案,線程池復(fù)用線程,如果子線程執(zhí)行完未移除上下文,則會(huì)導(dǎo)致后續(xù)線程可以取到之前線程設(shè)置的屬性,需要的朋友可以參考下2023-11-11

