Java - Problema con metodo assertEquals

 
Vista:
sin imagen de perfil

Problema con metodo assertEquals

Publicado por Guillermo (5 intervenciones) el 13/11/2016 14:07:03
Tengo problemas con unas pruebas que estoy pasando,concretamente con "assertEquals"

Realmente estoy comparando dos objetos de tipo "user" que tienen 3 parámetros "username,password,fullname"

En las pruebas hago esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void loginUser() {
Platform platform = new Platform();
 
// Check that no user is in the platform
assertEquals((int)platform.getNumUsers(), 0);
 
// Register new user
User u1=platform.registerUser(username1, password1, fullName1);
assertNotNull(u1);
assertEquals((int)platform.getNumUsers(), 1);
 
// Try to login with the new user credentials
User u2 = platform.login(username1, password1);
assertNotNull(u2);
assertEquals((int)platform.getNumUsers(), 1);
 
// User information is correct
assertEquals(u1, u2);

Primero compruebo que no existe ningún usuario,luego creo un usuario y por ultimo con el User u2 le paso el username y password de U1 y si la información de u1 y u2 es la misma sigo hacia adelante,el caso es que cuando llego al assertEquals(u1,u2) me dice que no son iguales pero yo creo que si lo son...

La clase donde hago los cálculos es esta la clase Platform
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package edu.uoc.dpoo;
import java.util.ArrayList;
import java.util.List;
 
/**
 *
 * @author Guillermo Rodriguez Barcelo
 */
public class Platform {
 
private List<Competition> competitions;
private List<User> users;
 
public Platform(){
 
    competitions = new ArrayList<Competition>();
    users = new ArrayList<User>();
 
}
public User registerUser(String username ,String password,String fullname){
 
    User p = findUser(username);
    if (p == null) {
        p =  new User(username, password,fullname);
        users.add(p);
    }
    else {
        p=null;
    }
 
    return (User) p;
}
 
 
 
public User findUser (String username) {
 
 
           User user = null;
 
    for (User p : users) {
        if (username.equals(p.getUserName())) {
            user = p;
                            p= null;
            break;
        }
    }
 
 
 
    return user;
}
 
 
public User login(String username,String password){
    User user = null;
 
    for (User p : users){
        if(username.equals(p.getUserName())&& (password.equals(p.getPassword())) ){
            user = p;
            break;
    }else
    {
            return null;
            }
    }
    return user;
}
 
 
public Integer getNumUsers(){
    Integer  size=users.size();
 
    return size  ;
}
public Integer getNumCompetitions(){
    return null;
}
public Message sendMessage(User from,String to,String subject,String message){
    return null;
}
private float evaluateAll(){
    return (float) 0.0;
 
}
 
public List<Competition> getOpenCompetitions(){
    return null;
}
 
private User User(User u) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
 
 
 
 
 
}

El código de assertEquals es el siguiente
static public void assertEquals(Object expected, Object actual) {
assertEquals(null, expected, actual);
}

No entiendo por que me dice que los objetos u1 y u2 no son iguales.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 87
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Problema con metodo assertEquals

Publicado por Tomas (76 intervenciones) el 13/11/2016 21:10:49
assertEquals es lo mismo que ' == ' , en qué momento le dijiste que User u2 = u1 ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con metodo assertEquals

Publicado por Guillermo Rodriguez (5 intervenciones) el 14/11/2016 08:25:44
Bueno pues bien,despues de dar muchas vueltas lo que hice fue esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Override
public boolean equals (Object o) {
    boolean prueba = false;
 
    if ((o != null) && (o instanceof User)) {
        User p = (User) o;
        if (this.username == null && this.password == null && this.fullName == null) {
            prueba = (p.username == null);
                            prueba = (p.password == null);
                            prueba = (p.fullName == null);
        }
        else {
            prueba =  this.username.equals(p.username);
                            prueba =  this.password.equals(p.password);
                            prueba =  this.fullName.equals(p.fullName);
        }
    }
 
    return prueba;
}
Comparando parámetro a parámetro de cada objeto y asi me funciono...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar