Estoy escribiendo pruebas de unidades para mi aplicación de griales, y me di cuenta de que realmente no sé la forma correcta de afirmar si un objeto es el adecuado o no.Forma correcta de comparar objetos en una prueba de unidad
Por ejemplo, dada la siguiente prueba:
void testExampleTest() {
mockSession.person = new Person(firstName:'John', lastName:'Doe', middleInitial:'E')
def model = controller.testMethod()
...assertions...
}
y
def testMethod = {
Person currPerson = session.getAttribute("person")
render(view:'view',model:[person:currPerson]
}
¿Cómo debo asegurarse de que el objeto persona añadí a la sesión correctamente se está pasando en el modelo? ¿Es suficiente usar
assertEquals(person,model['person'])
o porque Inyecté el objeto a mí mismo en la sesión no tiene más sentido utilizar
assertEquals(person.firstName, model['person'].firstName)
assertEquals(person.lastName, model['person'].lastName)
assertequals(person.middleName, model['person'].middleName)
Me parece que la primera forma debería ser suficiente siempre y cuando el objeto tiene un método equals correctamente definido, pero solo quería ver cuál es la forma convencional.
Gracias
Véase también mi respuesta: La biblioteca commons-beans hace que sea sencillo utilizar el acceso basado en la reflexión, que se puede utilizar para crear métodos de afirmación de múltiples propiedades. –