Métodos de prueba unitaria con E / S en iOS

¿Cuáles son los mejores enfoques para los métodos de prueba unitaria que incluyen operaciones de E / S en iOS?

Por ejemplo, estoy considerando usar Objective-C categoría para redefinir el comportamiento de los métodos de E / S como imageNamed. Sin embargo, esto evita las pruebas unitarias de caja negra porque es necesario saber qué métodos de E / S se utilizan en la implementación.

preguntado el 09 de noviembre de 11 a las 14:11

2 Respuestas

Pase los resultados de la operación de E / S para que los datos de prueba se puedan suministrar en lugar de los datos de E / S reales o utilice OCMock. he utilizado OCMock exactamente para este propósito. Si estas considerando OCMock, lea al menos el archivo de encabezado para todos los métodos disponibles.

Si trabaja con código heredado, considere leer / estudiar el libro Trabajando efectivamente con código heredado por Michael Feathers

respondido 09 nov., 11:18

Reemplazar las implementaciones de métodos en marcos de terceros es algo extraordinariamente arriesgado, porque no hay forma de estar seguro de los detalles de implementación interna y, por lo tanto, las dependencias que podría estar rompiendo sin saberlo. También es muy frágil, incluso si funciona correctamente hoy, podría romper algo en una versión futura del marco.

Ninguna cantidad de pruebas unitarias puede garantizar la validez de los cambios que realice de esta manera. Si estuviera haciendo cosas como esta simplemente para experimentar, estoy seguro de que podría ser divertido y podría ser útil para fines de aprendizaje, pero entonces no se preocuparía por las pruebas de caja negra.

Considere si podría lograr lo que necesita agregando métodos que sean paralelos a los existentes, en lugar de reemplazar las implementaciones de métodos del marco.

respondido 09 nov., 11:18

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.