The practical distinction between mocking and spying in unit testing, with examples using mockk for Kotlin.