TDD at its core is not about testing, it's about how to approach better code design. The idea is to think about the required structure of your code before you write it, based on incremental steps. TDD only looks at the public interface and thus is compatible with unit and integration testing. I believe that many people have a misconception of what TDD is. Andrea Laforgia has an interesting view on this: dev.to/andrealaforgia/why-test-driven-design-386c