I tend to veer towards the opinion that only public interfaces should be tested, thereby covering testing of private procedures. However, an interesting question arose yesterday - should one test event handlers? My gut instinct is that logic should be stored in self-contained procedures invoked by the handlers themselves, but this is subjective and would more than likely result in private procedures rather than public ones that are being tested. Should I be unit testing event handlers and, if so, what are the best practices for doing so?