I've been playing around with TDD on our project and it works on some simplistic pieces, but I'm having a difficult time applying it beyond simple smoke tests due to our app. I came across a decent article in MSDN Magazine by Will Stott and James Newkirk last month, but I think the real world application is a little simplistic. I like the concept and the areas where I apply it are useful, but I'm struggling with some more complex situations.
A large part of our application business objects produce output based on the existing state of the running plant. What I submit on time(x) is very different than what is applied on time(y). There is a big value in keeping a known state and testing from that point, however running a series of tests modify the state of that plant. Therefore the test results aren't predictable due to the tests that ran before. I'm really limited to doing smoke tests and testing the structure of the data than testing the data itself (i.e. using XSL to determine structural validity).
I'm curious if anyone has run into these situations or seen any articles dealing with this type of environment. All the TDD articles assume, to some degree, a given knowable state that's easy to get back to over the course of testing.