You Don't Hate Mocks; You Hate Side Effects

Yes it does. I started to experience this very early in my practise of test-first programming. I could probably find messages/articles from 2001-2002 saying that I felt this uncomfortable push towards separating data from behavior and "is this OK"? :)

Looking back, I believe I was making my first small movements in the direction of learning functional programming, but I didn't understand at the time that that was happening.

An object is a cohesive collection of partially applied functions. Maybe that statement on its own suffices to help you see what's happening in your mind. Maybe this article would help: https://www.harukizaemon.co...

Indeed, maybe your mind wants to think in functions rather than in objects right now. I think of objects as a way to distribute the management of the state of the system. Maybe my brain doesn't want to do that any more. :) Maybe it's merely a phase that I'm going through.

Fortunately, refactoring between the two is relatively easy: if you see a group of functions that operate on similar values, then collect the values into a Parameter Object followed by moving those functions onto that new object as methods. Or if this becomes inconvenient, do the inverse of that refactoring. This article talks a little about these inverse refactorings: https://blog.thecodewhisper...

Most importantly, you are not alone. :)