3 ms·
Unit Tests. If you can't write a unit test for it, it's too complicated and it's going to snowball quickly into a giant mess.
by idontwantthis 4y ago
Unit Tests. If you can't write a unit test for it, it's too complicated and it's going to snowball quickly into a giant mess.
- marginalia_nu 4y agoUnit tests, while good at promoting decoupling, can absolutely be a major driver of complexity, as it may break the code into far more units than what is reasonable.
- bbarn 4y agoI love unit tests, but admit I have absolutely seen unnecessary complexity including complete classes and namespaces solely to enable testability in many cases. It's a justifiable trade off for me, but I don't pretend that unit testing reduces complexity.
- nosianu 4y agoI think it is of at least slight interest to some who missed it, to bring back this thread from 2018, about Oracle code (I too once worked on it so I immediately saved that comment link when it was posted): https://news.ycombinator.com/item?id=18442941 https://news.ycombinator.com/item?id=18442941
- idontwantthis 4y agoI'm not sure if you're saying so, but those are not unit tests.
- nosianu 4y agoYes it is about tests in general. I think it fits the discussion and many comments very well, this does not really seem to be about only unit tests specifically. Many comments are more general in tone. The very comment at the top of this sub-thread does not seem to limit itself to the subject of unit tests.
- matheusmoreira 4y agoMy experience with automated testing was great until I had to test I/O functionality: files, databases. That's when the test suite itself became too complicated.
- dasil003 4y agoBe careful with this. Unit tests don't tell you much about the correctness of a system overall, and they rarely survive a substantial refactoring. Optimizing for unit testability can make individual classes/functions "simple" but at the expense of creating a ton of them and pushing the complexity to the interfaces and integration between them.
- deleted 4y ago[deleted]
- dsieger 4y agoAbsolutely! For me, comprehensive testing is key to keep things clean over time. Not sure why this didn't come to my mind when writing the article. I think I was somehow assuming that this is a necessary pre-condition anyway.