Unit testing is the test that verify the specific unit of the code. From the unit testing code coverage can be calculated to detect the code which is being delivered how much is actually tested by developer. As aim of unite testing is executing each line developed, Unit testing helps to detect the corner cases which in general will not be caught during the functional tests. There are various methods of unit testing automation for every language, to name a few Gtest/Gmock, Junit, Cunit. In general unit test support comes along with programming language.
Unit testing improves the quality of the code
Unit testing allows the programmer to refactor code or upgrade system libraries
Unit testing reduces defects in the newly developed features or reduces bugs when changing the existing functionality
Unit testing helps reduce the cost of bug fixes
Unit testing provides documentation of the system
Why Unit Testing?
Unit testing, especially test driven development, is a design or implementation activity, not a testing activity.