TDD is about testing the external behavior of your class, not the internal implementation. If your tests look at the internal implementation, they will fragile and may break if details of the implementation change. This will discourage you from refactoring and improving the code.
TDD also emphasizes that you write each test before you write the necessary production code. This helps avoid testing implementation because you are writing a test for an implementation that doesn't exist yet. This encourages you to think about the desired behavior of your class and write a test to exercise that behavior.