logoalt Hacker News

pmg101last Sunday at 11:14 AM3 repliesview on HN

  1. Take every single function, even private ones.
  2. Mock every argument and collaborator.
  3. Call the function.
  4. Assert the mocks were  called in the expected way.
These tests help you find inadvertent changes, yes, but they also create constant noise about changes you intend.

Replies

senbrowlast Sunday at 6:25 PM

These tests also break encapsulation in many cases because they're not testing the interface contract, they're testing the implementation.

ornornorlast Sunday at 4:31 PM

Juniors on one of the teams I work with only write this kind of tests. It’s tiring, and I have to tell them to test the behaviour, not the implementation. And yet every time they do the same thing. Or rather their AI IDE spits these out.

girvolast Sunday at 9:53 PM

You beat me to it, and yep these are exactly it.

“Mock the world then test your mocks”, I’m simply not convinced these have any value at all after my nearly two decades of doing this professionally