The point is to never test how it's working. Instead declare what it should be doing. If you can't declare ahead of time what it should be doing (maybe this is what you mean "how it is going to work") then you can't build it, can you?
Either you’re making a point that’s technically correct but missing the point, or you’re misinformed about how TDD works. TDD is an iterative process that generates tests and code at the same time, in very small (1-5 lines of code) bite-sized pieces. Although it could be argued that tests are specs, they don’t happen up front.
What? TDD was created by Kent Beck as part of XP, which is about as far from up-front design and spec as you can get.