¿Cómo debo hacer una prueba de unidad de un generador de código?

Esta es una pregunta difícil y abierta que conozco, pero pensé que la tiraría al suelo y vería si alguien tenía alguna sugerencia interesante.

He desarrollado un generador de código que lleva nuestra interfaz de Python a nuestro código C ++ (generado a través de SWIG) y genera el código necesario para exponer esto como servicios web. Cuando desarrollé este código lo hice utilizando TDD, pero encontré que mis pruebas son muy frágiles. Debido a que cada prueba esencialmente quería verificar que para un bit de código de entrada dado (que es un encabezado de C ++) obtendría un bit de código dado que escribí un pequeño motor que lee definiciones de prueba de archivos de entrada XML y genera prueba Casos de estas expectativas.

El problema es que temo entrar para modificar el código en absoluto. Eso y el hecho de que las pruebas unitarias en sí mismas son a: complejo y b: frágil.

Así que estoy tratando de pensar en enfoques alternativos para este problema, y ​​me parece que lo estoy abordando de manera incorrecta. Tal vez necesito concentrarme más en el resultado, IE: ¿el código que genero realmente se ejecuta y hace lo que quiero, en lugar de hacerlo, el código tiene el aspecto que yo quiero?

¿Alguien ha tenido experiencias de algo similar a esto que les gustaría compartir?

Respuestas a la pregunta(8)

Su respuesta a la pregunta