Тест первого/тест после:
Следует отметить, что «тест первого», как часть TDD так же много (если не больше), чтобы сделать с дизайном, как это сделать с модульным тестированием , Это технология разработки программного обеспечения сама по себе - запись результатов тестов в постоянное совершенствование дизайна.
Отдельное примечание. Если у TDD есть одно существенное преимущество с точки зрения чисто модульного тестирования, то это намного сложнее (хотя и не невозможно), чтобы написать тест, который является неправильным при выполнении TDD. Если вы пишите тест заранее, он должен всегда сбой, потому что логика, необходимая для прохождения теста, еще не существует.Если после этого вы напишете тест, логика должна быть там, но если тест прослушивается или тестируется неправильно, он может проходить независимо.
I.e. если вы пишете плохой тест раньше, вы можете получить зеленый свет, когда вы ожидаете красного (так что вы знаете, что тест плох). Если после этого вы напишите плохой тест, вы получите зеленый свет, когда вы ожидаете зеленого цвета (не подозревая о плохом тесте).
Книги
Прагматический модульного тестирования книга стоит посмотреть, как Рой Osherove «Искусство модульного тестирования». Прагматическая книга более узко ориентирована на различные типы тестовых входов, которые вы можете попытаться найти ошибки, тогда как TAOUT охватывает более широкое распространение таких тем, как двойные тесты, стратегии, ремонтопригодность и т. Д. Либо книга хороша; это зависит от того, что вы хотите от него.
Также есть link to a talk Roy Osherove did on unit testing. Это стоит посмотреть (так же, как и некоторые из видеозаписей, которые он записал, так как он указывает на различные проблемы и dos/don'ts вместе с причинами).
Как начать
Там нет ничего лучше, чем писать код. Найдите довольно простой класс, который больше не ссылается. Затем начните писать некоторые тесты.
Всегда спрашивайте себя: «Что я хочу попробовать и докажу с помощью этого теста?» перед тем, как вы его напишете, дайте ему достойное имя (обычно включающий вызываемый метод, сценарий и ожидаемый результат, например, в стеке: «Pop WhenStackIsEmpty ThrowsException»).
Подумайте обо всех входах, которые вы можете наложить на него, различных комбинациях методов, которые могут дать интересные результаты и так далее.
Попробуйте прочитать эту статью: http://blog.codeville.net/2009/08/24/writing-great-unit-tests-best-and-worst-practises/ – Kane
Если вы на C#, то потратите деньги и получите копию Resharper. Он меняет весь опыт. –