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.