Foundational unit testing techniques are often taken for granted, but are an essential underpinning for delivering maintainable software. The tests need to assist software development not hinder it, and to that end need to be flexible, robust, comprehensible and performant. If you find yourself fighting your test suite, then something is wrong.
In this session, we re-examine the basics of a unit test. We will work through a number of examples with continuous input from attendees. Each example will start with a test of questionable quality, and we will work through the issues till we're happy that it's as good as we can get it.
Although this session is not specifically about the testability of software, this will necessarily be touched upon as we consider some test cases. Examples will be written in several common languages, but knowledge of all (or any) of them is not a pre-requisite.