Unit tests only tell you that a function isn't working, not what's happening. Convincing actual people to just throw a print statement in the middle of a method to see what something is doing, or what data it's seeing, can be like pulling teeth.
That's what the debugger is for
Yes. Sometimes just chucking a print is more convenient.
But yeah, debugger is your friend