TDD does not drive towards good design, it drives away from a bad design. If you know what good design is, the result is a better design - Nat Pryce
TDD doesn't drive good design. TDD gives you immediate feedback about what is likely to be bad design - Kent Beck
Writing tests is another way to look the code and locally understand it and reuse it, and that is the same goal of good OO design. This is the reason of the deep synergy between testability and good design - Michael Feathers
2 interesting questions then
1) Why a team when writing code with TDD & Mocks [1] seemed to make less violations of the design principles than when writing code only with the explicit policy to follow the design principles ?
2) Why a team practicing TDD & Mocks [1] gained a deeper understanding of the design principles making the connection between the general and abstract definition of the principles and the line of code written in a specific language and technology stack ?
One possible answer : here