Разница между классической и лондонской школами юнит-тестирования заключается в понимании изоляции. 28
Лондонская школа понимает изоляцию как изоляцию тестируемого кода от его изменяемых зависимостей. 2 Все изменяемые зависимости (совместные и приватные) заменяются на тестовые двойники — «мокируются». 2
Классическая школа подразумевает изоляцию не тестируемого кода, а тестов друг от друга. 2 Если тесты через зависимость могут влиять друг на друга при параллельном запуске, то эта зависимость меняется на тестовый двойник. 2 Все остальные зависимости, даже если они изменяемые, используются как есть. 2 То есть при таком подходе зачастую тестируется одновременно несколько связанных классов. 2
Ещё одно различие заключается в определении юнита. 1 В лондонской школе юнит — это обычно один класс или метод класса, так как все другие зависимости мокируются. 1 Классическая школа может тестировать часть логики, состоящую из нескольких классов, потому что она проверяет единицу поведения, а не единицу кода. 1