Pruebas unitarias
Con Babel Obfuscator es posible conservar las pruebas unitarias incluso después de ofuscar el código. Para ello se configura Babel Obfuscator de modo que aplique la ofuscación al código y las pruebas unitarias se ejecuten sobre el código ofuscado. Esta configuración requiere un archivo map XML, que ayuda a resolver los problemas que pueden surgir del acceso a las clases internas que usan las pruebas unitarias. Así puede asegurarse de que las pruebas unitarias sigan dando resultados fiables y precisos incluso después de ofuscar el código. Esto ayuda a mantener la calidad del código y garantiza que siga funcionando como está previsto tras la ofuscación.
Para ejecutar correctamente las pruebas unitarias sobre código ofuscado, es necesario usar un archivo map XML con Babel Obfuscator. El archivo map XML ayuda a Babel Obfuscator a llevar el control de los nombres de las clases, los métodos y las variables del ensamblado de destino y a garantizar que sigan siendo coherentes incluso después de la ofuscación. Esto es importante porque las pruebas unitarias suelen depender de la estructura interna del código y pueden usar referencias a clases, métodos o variables concretos. Si esas referencias cambian durante la ofuscación, las pruebas unitarias ya no pueden acceder a los elementos necesarios y fallan.
Para resolver este problema, Babel Obfuscator genera para el ensamblado de destino un archivo map XML que registra los nombres originales de las clases, los métodos y las variables antes de la ofuscación. Durante el proceso de ofuscación, Babel Obfuscator actualiza los nombres del archivo map para que correspondan a los nombres ofuscados. Después, las pruebas unitarias se pueden procesar con Babel Obfuscator y el archivo map generado para acceder a los nombres ofuscados correctos, lo que permite ejecutarlas correctamente sobre el código ofuscado.
Configurar Babel para las pruebas unitarias
Para usar Babel Obfuscator con sus pruebas unitarias, siga estos pasos:
Hacer referencia al paquete NuGet
Añada una referencia al paquete NuGet de Babel Obfuscator en el proyecto de pruebas unitarias.
Cargar el archivo map XML
Modifique el proyecto añadiendo instrucciones de MSBuild que permitan a Babel cargar el archivo map XML generado para el ensamblado de destino.
Desactivar el renombrado
El proyecto de pruebas unitarias no necesita renombrado, así que desactívelo.
<PropertyGroup>
<ObfuscateTypes>false</ObfuscateTypes>
<ObfuscateProperties>false</ObfuscateProperties>
<ObfuscateMethods>false</ObfuscateMethods>
<ObfuscateParameters>false</ObfuscateParameters>
<ObfuscateFields>false</ObfuscateFields>
<ObfuscateEvents>false</ObfuscateEvents>
</PropertyGroup>
<ItemGroup>
<MapInFile Include="$(SolutionDir)/MapOut/ClassLibrary.dll.map.xml" />
</ItemGroup>Aquí, ClassLibrary.dll.map.xml es el archivo map XML generado para el ensamblado de destino que se está probando.
De este modo puede ejecutar las pruebas unitarias sobre el código ofuscado y usar el archivo map XML para resolver cualquier problema con las referencias a nombres ofuscados que usa el código de las pruebas. Esta configuración garantiza que las pruebas unitarias sigan funcionando incluso después de aplicar la ofuscación al código.
Ejecutar el proyecto de ejemplo
Puede descargar el proyecto de ejemplo aquí . Para ejecutarlo, siga estas instrucciones:
Extraer el archivo
Extraiga el archivo UnitTest.zip en una carpeta de su equipo.
Copiar el archivo de licencia
Copie su archivo de licencia en la carpeta extraída.
Abrir un terminal
Abra un símbolo del sistema o una ventana de terminal y vaya a la carpeta en la que extrajo los archivos.
Ejecutar las pruebas
Escriba el comando «dotnet test» para ejecutar el proyecto de ejemplo.

Salida de las pruebas unitarias