Cuando pruebo los contras por defecto. en una clase como esta:
public class Man {
public Man(){}
@Test
public void defConstructorTest() {
Man m = new Man();
assertEquals(0, m.getName());
assertEquals(0, m.getBorn());
viene el mensaje:
test failed expected: 0 but was: null
Cuando se cambia el código como el siguiente:
@Test
public void defConstructorTest() {
Man m = new Man();
assertEquals(null, m.getName());
assertEquals(null, m.getBorn());
Fallo en la prueba de nuevo con se muestra este mensaje:
expected: null but was: 0
¿Puede alguien explicar por qué estoy recibiendo este error? (Compuestos absorbentes están funcionando bien)
No ha compartido lo suficiente código de Man
dar una respuesta definitiva, pero a partir de los mensajes de error (y algo de sentido común) que supongo que getName()
devuelve una String
y getBorn()
devuelve una int
con año el hombre nació el. Asumiendo que estos captadores son solo simples que los miembros de datos de retorno, el valor predeterminado para una String
(o cualquier otro objeto, para el caso) es null
menos que sea explícitamente inicializado, y el valor predeterminado para una primitiva int
es 0
.
Para hacer una larga historia corta, es necesario esperar que el valor predeterminado el uno para el comprador:
@Test
public void defConstructorTest() {
Man m = new Man();
assertNull(m.getName());
assertEquals(0, m.getBorn());
}