An automated unit test is code that is used to validate an individual units of source code to working properly. A unit is the smallest testable part of an application, which a method class or a procedure. When each unit is independent from the others, mock objects and stubs can be used to assist testing the unit in isolation. This type of a unit test is called a pure unit test because the only production code that is executed by the test is that of unit, and not sub-procedures or methods.
Unit testing is technically not testing. It's part of the implementation phase where code that is written is executed to ensure it does what the programmer intends it to do (where functional testing is performed by QA and ensures that the code behaves as specified by the requirements)