Ranter
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Comments
-
spongessuck6001258dThe code may be making it hard to write good unit tests. Are you using dependency injection? No impure static methods?
-
cb2191018258d@spongessuck static methods don't exist. The codebase wasn't built with testing in mind.
I often don't know whether to mock some code I cannot control or to parameterize it. -
lungdart2983258dI would refactor what I could to pure functions and give them unit tests. Add acceptance tests elsewhere.
Then start mocking the more complicated side effects one at a time, but don't spend too much time here.
Forcing tests can often lead to highly coupled tests, which makes them less useful for feature adding and refactoring. -
CoreFusionX2996258dYeah. Unit tests, by definition, should only test one unit, say, one function, or a set of commonly called sequences.
But agreed, it's a pain when the codebase doesn't lend itself to it. -
AlmondSauce16719257d"The codebase wasn't built with testing in mind"
...and there's your problem. If it's a convoluted mess of inter-dependencies and spaghetti then it's going to be basically impossible to unit test it effectively. Your options are basically limited to integration tests only, or a massive refactoring. -
MammaNeedHummus4039257dOP see "Characterisation tests" from the book 'Working Effectively with Legacy Code'.
Actually, read the entire thing. I'd bet my cousin's goat it would expand your mind
Related Rants
Every time I try to write a unit test I seem to write an integration test instead. 🤦
I'm just awful at it.
rant
unit test
integration test
tdd