Pro tip: learn to distinguish! Your friends and colleagues will be amazed! Library: your code calls it. Framework: it calls your code.
OH "Code is like humour: if you have to explain it, it's bad." /via @housecor
TDD is about feedback; if a test is painful to write, make the SUT easier to use. Unfortunately, some people tolerate pain too well.
If tests are difficult to write, it means that the System Under Test is difficult to use. (Periodic reminder)
The funny part is that IoC is also prevalent in FP - but there, it's just called 'higher-order functions'.