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