If you write code like that, you get many of the benefits of unit tests, whether or not they are actually written.
Perhaps it's a good idea to write a test harness (e.g. larger integration tests) for old so that you have a reasonable chance of catching it if it becomes broken, and focus on writing new code in a testable fashion.
It's too easy to fool yourself into thinking you've written testable code.
Proper unit testing also complements integration testing in that corner cases can be handled at the unit test level, therefore reducing the amount of integration test code which arguably is much more brittle, runs slower and more complicated to write.
Only case where I'd support "unit tests" as typically practiced (small units, isolated functions/classes) is around core competence (defined as narrowly as possible). But then I'd argue that this functionality should be put into a library anyways, which is used by products codebases. And then the tests are tests for the functionality promised to the products.
I guess I shouldn't have used the word 'brittle', but this is what I was thinking of.
And of course, I think unit testing anything and everything is absurd and not a good use of developer time.
*Logical meaning only test for one thing, not a single assert statement. So testing for null and testing if a value is set is fine, but testing if 10 values are set correctly is not.
The discipline of unit testing forces me to think about what risks I'm introducing with my new code.
Unit tests drive better design - smaller classes, looser coupling, better separation of concerns, functions that don't have side effects.
Best of all, unit tests reduce regressions. I can't count the times my test suite has prevented me from introducing a bug in my app.
I can refactor code with much more confidence than if I did not have 400 unit tests checking my work.
Most recently, these tests proved their worth when upgrading my app to Swift 3.0.