Hacker News new | ask | show | jobs
by nfrbc 2519 days ago
I had all three of the things you described. But let me add a new one to the list that was incredibly frustrating:

4. Instead of integration tests (or static typing), all systems made by a couple programmers only had unit tests. The call boundary was NEVER tested, and everything relied on RSpec's "allow(obj).to receive" mocking.

So, not only it was very difficult to refactor (because I had to change two or more different sets of tests + mocks), the tests for dependencies didn't fail when I changed function signatures, or even if I removed chunks of code randomly. I had to find which test to change by myself.

In the end we had tests and we had coverage, but they didn't test anything properly and made maintenance a major pain in the ass.