Unidad que prueba un método que actualiza solo algunas propiedades

Desafortunadamente, el conjunto de cosas que una función no debe hacer es infinito. No establecer otros atributos que los deseados es solo una posibilidad. Y, cuando se trata de especificaciones, en su mayoría solo son explícitas con respecto a lo que debe hacer la función. Siempre hay un "y nada más" implícito, y solo raramente algunos comportamientos seleccionados se excluyen explícitamente.

Por otro lado, cuando aplica pruebas unitarias para verificar que el código que ha escrito se comporta como lo desea, entonces el problema se vuelve manejable: hay un conjunto de errores 'probables', y sus pruebas deben estar diseñadas para atraparlos. Por ejemplo, usted sabe si su código hace E / S o no, y si no, no hay ningún valor en escribir pruebas unitarias para verificar que no haga E / S. Por otro lado, si tiene una buena razón para creer que es un error probable que el código haga más de lo previsto para una operación específica, entonces vale la pena probarlo para asegurarse de que no lo haga.

Lo mismo se aplica, principalmente, al código escrito por otra persona, por ejemplo, si se hace cargo del mantenimiento de algún código. En cualquier caso, la prueba unitaria es una técnica de prueba de caja blanca, y se supone que tiene acceso al código, generalmente incluso la posibilidad de cambiarlo (por ejemplo, para mejorar la capacidad de prueba).

Respuesta 1

Respuesta simple: no hay una regla estricta. Las pruebas unitarias significan probar una "unidad" de funcionalidad.

En su caso, la funcionalidad es "actualizar el estado de la persona". Debe definirse por especificación, lo que se espera en este caso. Y, en un mundo perfecto, sus pruebas deben verificar solo las cosas especificadas.

También es una buena idea probar la unidad una acción a la vez. Por ejemplo, la primera prueba podría verificar la funcionalidad básica, mientras que la segunda verifica los efectos secundarios.

Respuesta: 2

Tengo una ruleta, que ya contiene algunos elementos. Estoy tratando de agregar un nuevo elemento después de obtenerlo de otra actividad mediante setResult y onActivityResult: protected void onActivityResult (...

Necesito escanear la pantalla en busca de una imagen / color específico y devolver una coordenada x e y para saber dónde se produce ese color. Sé que esto probablemente incluirá tomar una captura de pantalla usando la clase Robot, ...

Cuando intento eliminar datos de mi clase de servicio utilizando el método personalizado deleteBy () en el repositorio de datos de Spring, aparece el siguiente error. javax.persistence.TransactionRequiredException: Sin EntityManager ...

Estoy tratando de obtener el nombre de la estructura de la página. Hice hook y escribí revisando cada nombre de estructura de página. Usé JournalStructureLocalServiceUtil.getStructure () pero no funcionó y me dio errores y ...