The term "unit testing" itself is not commonly understood. > "We asked him (a testing expert) for his definition and he replied with something like "in the first morning of my training course I cover 24 different definitions of unit test." " [^mf2] [^mf2]: [Unit test](https://www.martinfowler.com/bliki/UnitTest.html) by [[@Martin Fowler]] ## Commonly accepted properties of a unit test - Low-level, focusing on a small part of the software system - Written by the developers using their regular tools - Expected to be faster to execute than other forms of tests ## Disputed properties of a unit test - What is a "unit"? A class, a function? OO vs functional programming models will have different definitions. In configuration-heavy systems (e.g. serverless) there may be "units" which have no imperative code at all — is there even a clear scope at all here? - Can they make out-of-process calls? (Network or disk I/O) - Solitary or sociable? Some people consider only solitary unit tests to be _true_ unit tests.