junit.framework.AssertionFailedError: expected:<true> but was:<false> at junit.framework.Assert.fail(Assert.java:57) at junit.framework.Assert.failNotEquals(Assert.java:329) at junit.framework.Assert.assertEquals(Assert.java:78) at junit.framework.Ass
package?service.impl; import?java.util.List; import?org.hibernate.Query; import?org.hibernate.Session; import?org.hibernate.Transaction; import?db.MyHibernateSessionFactory; import?entity.Users; import?service.UsersDAO; public?class?UsersDAOImpl?implements?UsersDAO?{ @Override public?boolean?usersLogin(Users?u)?{ //?事物對象 Transaction?tx?=?null; String?hql?=?""; try?{ Session?session?=?MyHibernateSessionFactory.getSessionFactory().getCurrentSession(); tx?=?session.beginTransaction(); hql?=?"from?Users?where?username=??and?password=??"; Query?query?=?session.createQuery(hql); query.setParameter(0,?u.getUsername()); query.setParameter(1,?u.getPassword()); List<?>?list?=?query.list(); tx.commit();//提交事物 if?(list.size()>0)?{ return?true; }?else?{ return?false; } }?catch?(Exception?ex)?{ ex.printStackTrace(); return?false; }?finally?{ if?(tx?!=?null)?{ tx?=?null; } } } }
package?service.impl; import?org.junit.Test; import?entity.Users; import?junit.framework.Assert; import?service.UsersDAO; public?class?TestUsersDAOImpl?{ @Test public?void?testUsersLogin()?{ Users?u?=?new?Users(1,?"zhangsan",?"123456"); UsersDAO?udao?=?new?UsersDAOImpl(); //?udao.usersLogin(u); Assert.assertEquals(true,?udao.usersLogin(u)); //將expected改為false則測試通過 } }
DeBug顯示返回的list的 ?size 0
2017-09-12
錯的很明顯啊。
29行:List<?>?list?=?query.list();
泛型是【?】,那list除了null以外,任何參數都不接收。
2017-08-14
我也是這個問題 不過已經解決了 樓主還沒解決的話可以問我
2017-07-11
是數據庫沒加數據吧
2017-06-20
有人解決了嗎
2017-04-23
有一點需要大家注意的是盡管hibernate查詢語句能識別數據庫語句生成腳本語言,兩者很相像但是還是有所有區別hibernate執行查詢語句的時候查詢的是一個對象,也就是說數據庫里面的表名hibernate并不是hibernate中的對象,而實體類的類名才是hibernate查詢的對象
2017-04-23
先執行?<property name="hbm2ddl.auto">create</property>創建完表后,再把create改成update就好了。避免了啟動的時候又重新創表,那之前的表里面的數據就會被銷毀。銷毀之后,user對象的值就會查詢不到,然后會拋出這個junit.framework.AssertionFailedError: expected:<true> but was:<false>異常。大家是不是運行代碼的時候拋出這個異常?當拋出這個異常的時候,大家打開數據庫里面的表,可以看看表里面原先存放的的數據是不是被銷毀了!只需要執行一次create就行了,然后把create改成update就OK祝各位猿友。
2017-03-22
有人解決了這個問題嗎?
2017-03-06
現在我也是這個問題,可是我本來寫的就是update,所以請問一下,這個問題是怎么解決的?
2016-05-13
我按照你這樣弄了還是不對啊 ?
2016-05-10
不是這樣的;原因已找到
<!--?
<property name="hbm2ddl.auto">create</property>
-->
<property name="hbm2ddl.auto">update</property> ?//配置錯了;應該是update
create:表示啟動的時候先drop,再create
create-drop: 也表示創建,只不過再系統關閉前執行一下drop
update: 這個操作啟動的時候會去檢查schema是否一致,如果不一致會做scheme更新
validate: 啟動時驗證現有schema與你配置的hibernate是否一致,如果不一致就拋出異常,并不做更新