С чего начать учить Unit тестирование?
С покрывания тестами простых модулей (которые не зависит от других модулей), которые не имеют побочных-эффектов (не лезут на диск или в сеть, не спрашивают ничего у пользователя).
Модулем может быть метод или класс.
Можно ещё почитать
книжку
Видел что существует много их, типу Moq, XUnit и тд.
Это инструменты для решения разных задач.
Moq - для создания моковых объектов
XUnit - непосредственно фреймворк для описания и запуска тестов.