Tengo un montón de código heredado para el que necesito escribir pruebas unitarias. Utiliza encabezados precompilados en todas partes, por lo que casi todos los archivos .cpp tienen una dependencia en stdafx.h, lo que hace que sea difícil romper las dependencias para escribir pruebas.¿Hay alguna manera de usar encabezados precompilados en VC++ sin requerir stdafx.h?
Mi primer instinto es eliminar todos estos archivos stdafx.h que, en su mayoría, contienen las directivas #include y colocar esos #includes directamente en los archivos de origen según sea necesario.
Esto haría necesario desactivar encabezados precompilados ya que dependen de tener un archivo como stdafx.h para determinar dónde se detienen los encabezados precompilados.
¿Hay alguna manera de mantener encabezados precompilados sin las dependencias de stdafx.h? ¿Hay una mejor manera de abordar este problema?
Personalmente utilizo encabezados precompilados (tanto para código normal como para pruebas unitarias) pero uso el nombre Precompilado.h/cpp. Los encabezados precompilados para las pruebas unitarias incluyen encabezados adicionales para que la compilación sea más rápida. – Daemin
vote por ESTO: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4931119-allow-precompiled-headers-to-be-shared-between-pro –
Sí, hay una mejor camino. Solo se puede usar un encabezado precompilado para cada archivo fuente, pero el archivo pch se puede especificar antes * de cada archivo fuente o conjunto de archivos fuente. También puede especificar qué archivos fuente usan o no usan un encabezado precompilado. Ver mi respuesta a continuación. – riderBill