I'm gonna try and keep it brief...
At the time of writing this, I can say I wholeheartedly share the same sentiment as you when it comes to writing tests. A few years ago, my arrogance and lack of knowledge made me perceive writing unit/integration tests as a way to confine yourself from future changes and extremely difficult to do, due to the level of verbosity you need to get to your coverage goals.
Fast-forward to last year: Since then I had matured as a developer and had embraced ES6, and had the fortunate luck of building components that are used by thousands of ppl every day.
With that ego-boost, I set a wild coverage target (100%) for a couple of those components and, needless to say, your ego begins to fade and flaws surface as you write your test cases. What I thought would take a week to test fully (just one of the components) actually turned into a sleepless month-long refactoring, modularizing, and testing exercise. More importantly, writing those tests taught me more about JS and my own writing style than anything else.
Obviously, my opinion on authoring tests code has completed changed since then, and your post really resonated with me, so thanks for that.
Btw, check out the testing time on this: reddit.com/r/BeAmazed/comments/9bl...
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.