You are clearly a developer of limited experience and you sound very confused.
Unit testing is a lot of work and is an inefficient way to do quality assurance. It often relies on running with fake data sets which must themselves be maintained. It usually requires compromises in design to make components "testable," like changing private entrypoints to public ones. And unit testing is usually done under TDD, which is frankly a stupid fad
Unit testing is checking a box and little more; most developers only write tests for the most standard cases, inspiring false confidence, and intoning
"when the tests all pass you're done"
like some tottering zombie army.
"Waste time in debugging," you write? Huh? What? You don't debug your work? Really? You think running one unit test for a standard set of data makes up for that?
Who needs a parachute? I have a battery fan.
Unit testing doesn't make anyone more productive. It's too much work.