There are a number of articles you can read out there, I personally like this one (I may be biased):
quick quote:
Many comparisons between the two schools of thinking can be summarized as “top-down” versus “bottom-up”. Where London-school TDD encourages programmers to use external constraints as a starting point (an API endpoint, an HTTP controller, etc.), Detroit-school TDD encourages programmers to first identify the core domain logic that exemplifies the work without concern for how it might be integrated elsewhere.
For completeness sake:
- concepts - What are the London and Chicago schools of TDD? - Software Engineering Stack Exchange
- https://medium.com/@adrianbooth/test-driven-development-wars-detroit-vs-london-classicist-vs-mockist-9956c78ae95f
While I personally like the starting point of the Detroit school (your start with the Domain problem, not the externalities) I use the London school to design tests.
A very good video about London TDD in Elixir can be seen here: