Como provar una implementación de Memento.


/ Published in: C#
Save to your folder(s)

Tengo una implementación legada de un patrón memento para una clase bastante grande, unas 15 propiedades de las cuales 5 de ellas corresponden a clases con sus propias propiedades adicionales.

Este memento está implementado de manera que un presentador tiene en memoria un objeto del mismo tipo que el modelo con el único propósito de mantener el estado previo, el que luego es restaurado si se necesita hacer un rollback de la edición. El traspaso del estado de un objeto a otro se hace propiedad a propiedad (mediante reflection)

Para hacer una refactorización, necesito generar una cobertura de pruebas unitarias decente para asegurar que el funcionamiento de la aplicación no se vea alterado por las mejoras que se introducirán.

Lo complejo, es que me encuentro haciendo pruebas unitarias muy redundantes, probando propiedad por propiedad que sea restablecido su valor al cancelar la edición.

La otra alternativa que tengo, es hacer un conjunto de asserts en un solo test para probar todas las propiedades de una sola vez, pero es tedioso y una conocida mala práctica de pruebas unitarias.

Ninguno de estos approach me deja convencido, ya que al agregar una propiedad en la clase bajo pruebas (que es posible que suceda) los test la van a dejar fuera de cobertura sin alertarme.

¿Se les ocurre alguna forma de mejorar la situación?

URL: http://failfast.chileagil.cl/questions/como-probar-una-implementacion-de-memento

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.