Coding unit tests is even harder than you think
Jamie Cansdale has put a nice application online he calls Code Blog. This application expects you to write an implementation based on a set of unit tests.
This app shows how difficult Test-Driven Development (TDD) is.
Just look at the submissions for sorting a list (first challenge). They all work, but one was coded specifically for the test and won't work with something else but an ArrayList, and the other two depend on what you really want: a copy of the list or the list itself being sorted?
Jamie discussed about this.
If you look at the current challenge, for the TestToPlain8220() method, you'll realize that it's possible to code for that specific value "“", but the resulting method would not work with "‛" or "”"...
Just simple examples that TDD is hard, very hard. You have to accept that your unit tests will never be 100% complete. Code passing your tests cannot be considered bullet proof. It's just code that works with your tests.