I have a friend that is doing a great job of pushing his developers to lean the discipline of test driven development (TDD). After a lot of guidance and easing competent developers into a new way of thinking, I've noticed at least two areas of resistance to the whole idea of test-first and unit testing in general.
The two kinds of push back come in the form of developer based and management based issues.
Developers who did not cut their teeth on a test-first paradigm will feel awkward and uncomfortable trying to "backwards" develop their applications. This will soon go away if the developer is teachable and can see how the rapid feedback will help them in the long run. I often say even if you write "bad" tests you are still better off because you can at least debug and test your code without having to launch a browser and wade through a sea of navigation to run your newest method.
The hurdles for developers I understand and share. The hurdles I have seen in project managers from time to time still puzzle me. The logic is as follows: 1) We want to get the project done as soon as possible 2) Unit tests are more code, so you are creating more work by writing them.
Yes there is more code when you write unit test. The time you take to write those test will pale in comparison to the time it takes to launch the UI and click on this button and that link and choose "Sherri Johnson" in this grid...
The test fixture code is in fact, a time saver.
This doesn't even attempt to address the long-term issues of having automated repeatable tests that give you a safe, warm environment for refactoring. Which is another hot word around some project managers... but that is another post.