assert
#如果
如果為false,則程式拋出AssertionError,並終止執行
assert
如果
如果為false,則程式拋出java.lang.AssertionError,並輸出。
ctrl點進Assert.assertEquals發現
#進行的是判斷兩個Object類型的值,他們兩個比較的是引用位址是否相等, 並沒有對內容進行比較:
如果兩者一致, 程式繼續往下運行.
如果兩者不一致, 中斷測試方法, 拋出異常訊息AssertionFailedError
而我寫的斷言是這樣的:
Assert.assertEquals(7, userList.size());
錯誤中明顯指出,Excepted是7,actual是8,因此兩個值不一致,報錯誤
因此把7改成8就行
Assert.assertEquals(8, userList.size());
我是在單元測試find的jdbc程式碼時遇到的
@Test public void testFind() throws Exception { //构建测试数据 //创建目标类的对象 CategoryDaoImpl dao = new CategoryDaoImpl(); //调用对象的目标方法 List<Category> list = dao.find(); int actual = list.size(); int expected = 2; //使用断言类的方法判断;比较实际和预计的结果 Assert.assertEquals(actual, expected); }
如果你也報瞭如題的錯誤,
你看看你的資料庫資料條數是不是和expected的2不一樣
是不是錯誤裡寫的actual 的值,像是我的資料庫就有9條
以上是java.lang.AssertionError錯誤問題怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!