2016-04-29 9 views
-1

私のメソッドのユーザIDがデータベースのユーザIDと等しいかどうかを確認するテストを作成しようとしています。私はこれを持っています:データベースJnitテストでuserIdからユーザを取得する

@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); 

} 

私がこれを実行すると、テストが失敗し、ユーザオブジェクトが同じではないと言います。どのように私は同じ結果を得ることができ、私はこのテストをより良くすることができますか?ありがとう

+0

ユーザークラスでequals()をオーバーライドしましたか? –

+0

いいえ、私はそれをしませんでした。 – luffy

答えて

1

ユーザーに2つの異なるインスタンスを比較する方法をJavaに伝える必要があります。例えば。ユーザーの実装に次のメソッドを追加してください。

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

または遅延しています。

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

yeaは私がequalsメソッドをオーバーライドしたと思った – luffy

関連する問題