从数据库Jnit Test中的userId获取用户

时间:2016-04-29 01:00:02

标签: java junit

所以我试图创建一个测试,检查我的方法中的用户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);

}

每当我运行它时测试失败并且说用户对象不一样。我怎样才能得到相同的结果?如何才能使这个测试更好?谢谢

1 个答案:

答案 0 :(得分:1)

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

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

或懒洋洋地说;

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