Test Driven Development (TDD) Best Practices
	I.	What two or more the following unit test “Best Practice” articles agree on
	A.	Use long clear names for your test cases, so people know what you are testing
	B.	All unit tests must be completely independent of each other, so use mock objects, and one assertion per test
	C.	Don’t use try/catch in unit tests, since this might mask bugs that would then show up during rollout.
	D.	Don’t use TTY or your eyes to determine success or failure, use assertXXX for speed and automation
	II.	http://www.bobmccune.com/2006/12/09/unit-testing-best-practices/
	A.	Test Publics, not privates which have nothing to do with external behavior.  Test inputs and outputs, not even internals of publics.
	B.	If method is too simple to break, don’t write a test, given there are diminishing returns as you approach 100% coverage
	C.	Treat tests like code that ships, refactoring for clarity, making beautiful
	D.	Use automated code coverage to catch a lot more
	1.	http://www.eclemma.org/
	2.	http://cobertura.sourceforge.net/
	3.	http://emma.sourceforge.net/
	E.	Know JUnit extensions
	1.	http://mockrunner.sourceforge.net/
	2.	http://www.dbunit.org/
	3.	http://www.easymock.org/
	4.	http://www.jmock.org/
	5.	http://www.openqa.org/selenium/
	III.	http://blog.stevensanderson.com/2009/08/24/writing-great-unit-tests-best-and-worst-practises/
	A.	Unit testing is about …
	1.	designing software robustly according to design
	2.	finding bugs when refactoring.
	B.	Unit testing is NOT about …
	1.	Finding bugs or regression bugs, which is what integration testing is for
	IV.	http://www.javaworld.com/jw-12-2000/jw-1221-junit.html
	A.	Design unit tests to run in any order
	B.	Don’t load data from hard-coded places in the file system, so your tests can move to another machine seamlessly
	C.	Make the unit tests conveniently accessible and runnable, so that they get used
	D.	Ensure tests are time-independent
	E.	Keep locale in mind when writing tests
	F.	Document all tests in Javadoc, so they don’t get out of sync
	G.	Keep tests small and fast
	H.	Build a test which calls the entire system for an integration test
	I.	Test Thread Safety