Spring Modulith permite comprobar que la organización del código respeta los límites y dependencias previstos entre módulos.
La verificación detecta principalmente:
allowedDependencies, solo se permiten las dependencias enumeradas.Se puede ejecutar durante una prueba:
@Test
void moduleStructureIsValid() {
ApplicationModules.of(Application.class).verify();
}
Si se detecta una infracción, verify() lanza una excepción. Para inspeccionar o filtrar las infracciones antes de fallar, se puede usar detectViolations():
ApplicationModules.of(Application.class)
.detectViolations()
.filter(violation -> /* criterio */ true)
.throwIfPresent();
verify() y detectViolations() aceptan VerificationOptions para incorporar reglas adicionales o ajustar las comprobaciones automáticas. Spring Modulith también puede integrar reglas de jMolecules ArchUnit cuando la biblioteca está presente.
La idea es automatizar las restricciones arquitectónicas en pruebas para detectar dependencias indebidas al modificar el código.