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以外,任何參數(shù)都不接收。
2017-08-14
我也是這個問題 不過已經(jīng)解決了 樓主還沒解決的話可以問我
2017-07-11
是數(shù)據(jù)庫沒加數(shù)據(jù)吧
2017-06-20
有人解決了嗎
2017-04-23
有一點(diǎn)需要大家注意的是盡管hibernate查詢語句能識別數(shù)據(jù)庫語句生成腳本語言,兩者很相像但是還是有所有區(qū)別hibernate執(zhí)行查詢語句的時候查詢的是一個對象,也就是說數(shù)據(jù)庫里面的表名hibernate并不是hibernate中的對象,而實(shí)體類的類名才是hibernate查詢的對象
2017-04-23
先執(zhí)行?<property name="hbm2ddl.auto">create</property>創(chuàng)建完表后,再把create改成update就好了。避免了啟動的時候又重新創(chuàng)表,那之前的表里面的數(shù)據(jù)就會被銷毀。銷毀之后,user對象的值就會查詢不到,然后會拋出這個junit.framework.AssertionFailedError: expected:<true> but was:<false>異常。大家是不是運(yùn)行代碼的時候拋出這個異常?當(dāng)拋出這個異常的時候,大家打開數(shù)據(jù)庫里面的表,可以看看表里面原先存放的的數(shù)據(jù)是不是被銷毀了!只需要執(zhí)行一次create就行了,然后把create改成update就OK祝各位猿友。
2017-03-22
有人解決了這個問題嗎?
2017-03-06
現(xiàn)在我也是這個問題,可是我本來寫的就是update,所以請問一下,這個問題是怎么解決的?
2016-05-13
我按照你這樣弄了還是不對啊 ?
2016-05-10
不是這樣的;原因已找到
<!--?
<property name="hbm2ddl.auto">create</property>
-->
<property name="hbm2ddl.auto">update</property> ?//配置錯了;應(yīng)該是update
create:表示啟動的時候先drop,再create
create-drop: 也表示創(chuàng)建,只不過再系統(tǒng)關(guān)閉前執(zhí)行一下drop
update: 這個操作啟動的時候會去檢查schema是否一致,如果不一致會做scheme更新
validate: 啟動時驗(yàn)證現(xiàn)有schema與你配置的hibernate是否一致,如果不一致就拋出異常,并不做更新