Java 从数据库Jnit测试中的用户ID获取用户

Java 从数据库Jnit测试中的用户ID获取用户,java,junit,Java,Junit,因此,我试图创建一个测试来检查我的方法中的用户Id是否与数据库中的相同。我有这个: @Test public void testGetUserbyUserId() { System.out.println("getUserbyUserId"); int UserId = 30; UserDao instance = new UserDao(); Users user = instance.getUserbyUserId(UserId); Users exp

因此,我试图创建一个测试来检查我的方法中的用户Id是否与数据库中的相同。我有这个:

@Test
public void testGetUserbyUserId() {
    System.out.println("getUserbyUserId");
    int UserId = 30;
    UserDao instance = new UserDao();
    Users user = instance.getUserbyUserId(UserId);
    Users expResult = user;

    //assertNotNull(expResult);
    Users result = instance.getUserbyUserId(user.getUserId());
    assertEquals(expResult, result);

}

每当我运行此测试时,测试都会失败,并且in表示用户对象不同。我怎样才能得到同样的结果,怎样才能使这个测试更好?谢谢

您需要告诉java,如何比较用户的两个不同实例。例如,在用户实现中添加以下方法:

@Override
public boolean equals(Object otherUser) {
    if(otherUser instanceof User)
        return ((User) otherUser).getUserId() == getUserId();
    else
        return false;
};
或者懒洋洋地

assertEquals(expResult.getUserId(), result.getUserId());

你在Users类中重写equals()了吗?没有。是的,我想我已经重写了equals方法,谢谢