According to wiki, unit tests are automated tests created and executed by software engineers to make sure a part of an application conforms to design specifications and functions as intended. Even though writing looks very simple, there are many issues that come up in practice. Usually, when we try to maximize code coverage, all we end up with are time-consuming, fragile, useless test files. We keep refactoring unit tests without actually gaining anything for the codebase. What if I said that one of the most poorly understood things we perform as developers is unit testing? I'll explain what unit testing actually entails, how it affects TDD, and how to create non-brittle unit tests in this session.