[{"data":1,"prerenderedAt":40},["ShallowReactive",2],{"profile-en":3,"article-testes-integracao-que-nao-mentem-en":27},{"brandName":4,"fullName":5,"headline":6,"manifesto":7,"contactIntro":11,"avatar":12,"manifestoImage":13,"social":14},"Danilo Fernando","Danilo Fernando - Senior Software Engineer","Well-built software, reliable integrations, and architecture designed to last.",[8,9,10],"My journey is guided by the belief that code is just a tool to solve complex business problems. With solid experience in the Java and Spring ecosystems, I focus on systems that work AND are easy to maintain and evolve.","Specialised in robust APIs and critical integrations, I believe technical maturity shows up in balanced decisions that weigh innovation against real business needs.","I chase real impact: Clean Code is not aesthetics, it is an economic necessity for long-term product sustainability.","I'm always open to new professional opportunities, technical exchange, or conversations about architecture and software engineering.","\u002Fimages\u002Fprofile\u002Fdanilo.webp","\u002Fimages\u002Fprofile\u002Fdanilo_manifesto.webp",[15,19,23],{"kind":16,"label":17,"href":18},"email","Email","mailto:danilo.bossanova@hotmail.com",{"kind":20,"label":21,"href":22},"linkedin","LinkedIn","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdanilo-fernando-dev\u002F",{"kind":24,"label":25,"href":26},"github","GitHub","https:\u002F\u002Fgithub.com\u002Fdanilobossanova",{"slug":28,"title":29,"excerpt":30,"category":31,"tags":32,"readTimeMinutes":36,"publishedAt":37,"author":4,"coverImage":38,"body":39},"testes-integracao-que-nao-mentem","Integration tests that don't lie","TestContainers strategies to keep CI\u002FCD fast without losing confidence in your code.","Spring Boot",[33,34,35],"testing","spring-boot","testcontainers",8,"2025-01-18","https:\u002F\u002Fpicsum.photos\u002Fseed\u002Ftests\u002F1200\u002F600","## Green suites, fragile code\n\nA green suite without confidence is worse than no suite — it gives you license\nto ship while the system burns.\n\n### The pattern that works\n\n1. **TestContainers** for real dependencies (Postgres, Kafka, Redis).\n2. **Deterministic fixtures** — no `@Sql` + random.\n3. **One seed per test**, no shared state.\n4. **Assert on data**, not on mock invocation counts.\n\n```java\n@Testcontainers\n@SpringBootTest\nclass OrderConfirmationIT {\n    @Container\n    static PostgreSQLContainer\u003C?> db = new PostgreSQLContainer\u003C>(\"postgres:16\")\n        .withInitScript(\"db\u002Finit.sql\");\n\n    @DynamicPropertySource\n    static void props(DynamicPropertyRegistry reg) {\n        reg.add(\"spring.datasource.url\", db::getJdbcUrl);\n    }\n}\n```\n\n### What that buys\n\n- Tests that **turn green with the code**, not after.\n- Fearless refactors.\n- Objective conversations at code review.",1776457051957]