Puntos clave
- Foundry permite desarrollar y probar contratos con herramientas centradas en Solidity.
- El fuzzing y las pruebas de invariantes exploran comportamientos más allá de ejemplos aislados.
- Los resultados dependen de las propiedades, escenarios y límites que se definen en las pruebas.
¿Qué es Foundry?
Foundry reúne herramientas para desarrollar, probar y operar contratos EVM. Forge organiza compilación, pruebas y scripts; Cast permite realizar consultas e interacciones; Anvil proporciona un nodo local y Chisel un entorno de exploración de Solidity. Las herramientas se combinan según las necesidades del proyecto.
Escribir pruebas en Solidity permite expresar llamadas y propiedades cerca del lenguaje del contrato. El valor está en comprobar reglas del sistema y reproducir fallos, no en asumir que una herramienta rápida hace correcta cualquier suite de pruebas.
Cómo funciona
Las pruebas unitarias verifican escenarios concretos. El fuzzing genera valores de entrada y las pruebas de invariantes exploran secuencias de acciones, comprobando propiedades como conservación de saldos o límites de emisión. Los handlers y restricciones determinan qué estados y participantes se exploran realmente.
Las cheatcodes permiten controlar condiciones del entorno de prueba. Un fork utiliza datos de una red en un bloque seleccionado y necesita acceso RPC adecuado. Fijar bloque, compilador y dependencias ayuda a reproducir resultados; una prueba contra estado cambiante puede fallar por razones ajenas al cambio de código.
Qué aporta Foundry
En un contrato de depósito, las pruebas pueden comparar entradas, retiradas y saldo restante a lo largo de secuencias de usuarios distintos. También se modelan contratos externos que revierten, devuelven valores inesperados o intentan reentrar. Esas pruebas aportan evidencia sobre el comportamiento que importa al producto.
Los scripts de despliegue permiten preparar y simular acciones antes de enviarlas. La entrega conserva parámetros, artefactos y direcciones verificadas por red. Cast puede ayudar a inspeccionar permisos o estado durante una incidencia, siempre distinguiendo las consultas de lectura de las operaciones que requieren firma.
Limitaciones y criterios de elección
El fuzzing y las invariantes no equivalen a una demostración formal para todas las ejecuciones posibles. Su eficacia depende de las propiedades escritas, los estados alcanzados y el tiempo de exploración. Una cobertura alta de líneas tampoco acredita que se hayan probado los riesgos relevantes.
Foundry puede coexistir con Hardhat si el equipo alinea compiladores, rutas y opciones. La elección debe considerar pruebas de integración, scripts y mantenimiento del conjunto. Para producción se añaden controles sobre claves y permisos y comprobaciones de la red de destino; la simulación local no elimina esas responsabilidades.
También conocido como
- Forge
- Cast
- Anvil
- Foundry-rs





