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

来源:2-3 用户业务逻辑接口和类

hyacinth小堇

2016-05-08 22:50

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



写回答 关注

11回答

  • weibo_酱油sean_0
    2017-09-12 16:02:17

    错的很明显啊。

    29行:List<?> list = query.list();

    泛型是【?】,那list除了null以外,任何参数都不接收。

  • 夏侯瑾軒
    2017-08-14 14:49:03

    我也是这个问题 不过已经解决了 楼主还没解决的话可以问我

    夏侯瑾軒 回复慕粉2201...

    那你试试在try语句中 每隔一句话 打印一下 这样就可以知道哪一句出问题

    2017-08-16 10:43:55

    共 4 条回复 >

  • qq_念旧_7
    2017-07-11 18:32:44

    是数据库没加数据吧

  • Vampier
    2017-06-20 09:22:46

    有人解决了吗


    慕粉0927...

    解决了,hql语句哪里 from 前面加上select *

    2018-07-16 17:23:39

    共 1 条回复 >

  • qq_吟游诗人_3
    2017-04-23 15:51:12

    有一点需要大家注意的是尽管hibernate查询语句能识别数据库语句生成脚本语言,两者很相像但是还是有所有区别hibernate执行查询语句的时候查询的是一个对象,也就是说数据库里面的表名hibernate并不是hibernate中的对象,而实体类的类名才是hibernate查询的对象

  • qq_吟游诗人_3
    2017-04-23 15:39:03

    先执行 <property name="hbm2ddl.auto">create</property>创建完表后,再把create改成update就好了。避免了启动的时候又重新创表,那之前的表里面的数据就会被销毁。销毁之后,user对象的值就会查询不到,然后会抛出这个junit.framework.AssertionFailedError: expected:<true> but was:<false>异常。大家是不是运行代码的时候抛出这个异常?当抛出这个异常的时候,大家打开数据库里面的表,可以看看表里面原先存放的的数据是不是被销毁了!只需要执行一次create就行了,然后把create改成update就OK祝各位猿友。

    慕粉0927... 回复勤浇水heh...

    解决了,hql语句哪里 from 前面加上select *

    2018-07-16 17:22:44

    共 3 条回复 >

  • 梦想月薪10W
    2017-03-22 02:14:57

    有人解决了这个问题吗?

    慕粉0927... 回复qq_无朋孤...

    解决了,hql语句哪里 from 前面加上select *

    2018-07-16 17:23:24

    共 3 条回复 >

  • 袁凡启
    2017-03-06 00:16:52

    现在我也是这个问题,可是我本来写的就是update,所以请问一下,这个问题是怎么解决的?


    梦想月薪10...

    问一下,你解决了这个问题了吗?

    2017-03-22 02:36:27

    共 1 条回复 >

  • 蓝小七
    2016-05-13 15:56:17

    我按照你这样弄了还是不对啊 ?

    慕粉0927... 回复梦想月薪10...

    解决了,hql语句哪里 from 前面加上select *

    2018-07-16 17:23:03

    共 2 条回复 >

  • hyacinth小堇
    2016-05-10 16:43:41

    不是这样的;原因已找到

    <!-- 

    <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是否一致,如果不一致就抛出异常,并不做更新

    蓝小七

    把这里的update改成drop就可以了 原来的create或者update是先删除后再创建 这样你的返回值永远都是false 因为你存数据的那个表已经被删掉了

    2016-05-13 19:21:50

    共 1 条回复 >

  • qq_夜過一半_03186987
    2016-05-10 12:15:47

    在测试类这里加个注解吧,

    @SuppressWarnings("deprecation")

    public class TestUsersDAOImpl {

    开始我按提示加了注解,好像就好了

使用Struts2+Hibernate开发学生信息管理功能

Strust2+Hibernate整合开发案例,Java Web开发技能更上一层楼

80700 学习 · 754 问题

查看课程

相似问题