解決報java.lang.AssertionError錯誤的問題
報java.lang.AssertionError錯誤
在使用Assert.assertEquals時報一個錯誤

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

進行的是判斷兩個Object類型的值,他們兩個比較的是引用地址是否相等, 并沒有對內容進行比較:
如果兩者一致, 程序繼續(xù)往下運行.
如果兩者不一致, 中斷測試方法, 拋出異常信息 AssertionFailedError
而我寫的斷言是這樣的:
Assert.assertEquals(7, userList.size());
錯誤中明顯指出,Excepted是7,actual是8,因此兩個值不一致,報錯誤
因此把7改成8就行
Assert.assertEquals(8, userList.size());
java.lang.AssertionError: Expected:2 Actual:9
我是在單元測試find的jdbc代碼時遇到的
單元測試代碼如下
? ? @Test
? ? public void testFind() throws Exception {
? ? ? ? //構建測試數(shù)據(jù)
? ? ? ? //創(chuàng)建目標類的對象
? ? ? ? CategoryDaoImpl dao = new CategoryDaoImpl();
? ? ? ? //調用對象的目標方法
? ? ? ? List<Category> list = dao.find();
? ? ? ? int actual = list.size();
? ? ? ? int expected = 2;
? ? ? ? //使用斷言類的方法判斷;比較實際和預計的結果
? ? ? ? Assert.assertEquals(actual, expected);
? ? }如果你也報了如題的錯誤,
你看看你的數(shù)據(jù)庫數(shù)據(jù)條數(shù)是不是和expected的2不一樣
是不是錯誤里寫的actual 的值,比如我的數(shù)據(jù)庫就有9條
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot 中 inputStream 神秘消失之謎(終破)
這篇文章主要介紹了springboot 中 inputStream 神秘消失之謎,為了能夠把這個問題說明,我們首先需要從簡單的http調用說起,通過設置body等一些操作,具體實現(xiàn)代碼跟隨小編一起看看吧2021-08-08
解決mybatis where-if中if不能識別大寫AND,OR的問題
這篇文章主要介紹了解決mybatis where-if中if不能識別大寫AND,OR的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
自己動手實現(xiàn)mybatis動態(tài)sql的方法
下面小編就為大家分享一篇自己動手實現(xiàn)mybatis動態(tài)sql的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
Java @PostMapping和@GetMapping方法使用詳解
這篇文章主要介紹了Java @PostMapping和@GetMapping方法使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-03-03

