In enterprise systems, especially those that are a little distributed, a common argument against unit testing is that "in real life, most bugs occur when apps communicate with each other". This might be true, although I like to see the problem a bit differently. After all, integration tests in distributed apps are always expensive.
I totally agree with you Maurício. The idea of isolating the problems in terms of testability excites me as it as a huge impact in the system architecture and design as well as on reducing or even remove the chances of critical bugs
Indeed, integration tests on distributed system is very complex and has a high cost. Is using mock in other external services is a good and valid solution for integration tests?