Главное помнить, что юнит-тесты - это, по сути, мини-спецификации. Это означает, что акцент всегда должен делаться на удобочитаемости.
Во-первых, это означает, что имена должны четко отражать то, что проверяется и что утверждается.
Во-вторых, что иногда забывают, это то, что в качестве спецификаций они должны делать именно это - указывать поведение. То есть модульные тесты не должны содержать логику - или потенциально они попадают в ловушку повторения функциональности программы, а не ее тестирования.
Иногда в тестах участвуют объекты, которые сложно настроить, вы должны стараться отделить эту логику настройки от ваших тестов, используя что-то вроде объекта-матери или построителя тестовых данных .
Я просто завершу с несколькими рекомендациями книги:
Тестовые шаблоны xUnit: рефакторинг тестового кода: отличная книга, некоторые говорят, что она немного сухая, но я так не думаю. Подробно рассказывается о множестве различных способов организации тестов и о том, как их поддерживать. Уместно, если вы используете что-то вроде NUnit и т. Д.
Искусство модульного тестирования: с примерами в .Net : Лучшая книга о том, как писать и поддерживать тесты. Несмотря на то, что я действительно новичок, я считаю, что разделы насмешек уже устарели, так как синтаксис AAA теперь довольно стандартный, а не просто другой способ сделать это.
Растущее объектно-ориентированное программное обеспечение, ориентированное на тесты : эта книга просто потрясающая! Безусловно, лучшая книга по модульному тестированию и единственная продвинутая, которая ставит модульное тестирование в качестве первоклассного гражданина в процессе проектирования. Читал это, когда это была публичная бета-версия и с тех пор рекомендую. Превосходный, реально работающий пример, используемый на протяжении всей книги. Рекомендую сначала прочитать книгу Роя.