Hi!
No, I do not try to eliminate debugging, I just propose to avoid it as much as possible. Which, with my long experience, you can avoid it almost completely.
About Unit Test is not integration, that is a common misconception. Unit Tests seen as tests that a failure implicates a unit of code (so you need mocks to accomplish it), is a QA or Waterfall definition, but it is not the Unit Test that requires TDD. TDD requires a kind of integrated test. TDD relays that you can build your program without running it, it is about constructing code that does not exist, and you have not even planning, so it cannot be about testing code units. If you look for what the creators of TDD, that is what they say. I have more about this misconception here.