Unit testing can be a challenge especially when you have automated testing or may be new to test driven development. There are several great design patterns for testing and even more anti-patterns in unit testing that you want to avoid.
Test driven development is a different way to think about the design, development, and maintenance of applications. TDD can work well for you, but it’s easy to go off the rails, especially with the kind of examples you see on the web. The basics are easy, but it can be tricky to get right. It takes a while to learn all the hard lessons of TDD, but the goal is ultimately worth it.