I’ve used an open-source tool called Keploy recently, and it’s been pretty useful when I needed to do integration testing without heavy refactoring.
In one project, we were working with a third-party API (kind of a black-box scenario) buried deep in the codebase — similar to what you're describing. Writing isolated unit tests wasn’t practical at that point, so we needed a way to test how our app behaved when interacting with that external component.
Keploy worked by sitting between the app and the network — it recorded actual requests and responses while we used the app normally. That included calls to the third-party API. From that, it generated test cases automatically, and even mocked the API calls for later test runs. This meant we didn’t need to set up or maintain a separate staging version of the third-party service every time we wanted to validate something.
We were able to run these generated tests as part of our pipeline and catch integration issues early, especially when updating dependencies. It wasn’t perfect — there’s a bit of setup involved, and you need to run the app with Keploy to record the traffic — but it definitely saved time compared to writing all the test cases and mocks manually.
It doesn’t replace unit testing tools, but it complements them well. We used our regular testing framework for unit tests, and then Keploy for parts of the system where integration mattered more than isolation.