Unit tests are the best documentation for your code, especially when you're working on a code base written by someone else and you don't know why a method or class has been written or what it's supposed to do. If unit tests are in place, you can refer to them to get all these details. They give the information on how this code is designed to be used.
Unit tests act as a proof to prove that the code that's been written is working correctly. They don't replace acceptance testing but supplement it. Bugs caught earlier are easy to fix and economical to project. Unit tests help reduce the passing of trivial bugs on to final builds or even into the field.
Each test is independent of other unit tests. The test executes fast. Each test makes assertions about only one logical concept. Code in each test is as small as possible.