Depends. If I'm working in an existing system and I know what the shape of the thing I'm writing is, then I might write the test first and tdd it out as that process is usually a bit faster for me.
If I'm developing a new feature I'd probably spike out a solution and write an acceptance test to match it, then if I'm feeling pedantic I might throw away the spike code and tdd it back up from scratch but I haven't done that in a while now.
This all depends on the language and the abstraction layer I'm at.
Depends. If I'm working in an existing system and I know what the shape of the thing I'm writing is, then I might write the test first and tdd it out as that process is usually a bit faster for me.
If I'm developing a new feature I'd probably spike out a solution and write an acceptance test to match it, then if I'm feeling pedantic I might throw away the spike code and tdd it back up from scratch but I haven't done that in a while now.
This all depends on the language and the abstraction layer I'm at.