Чем больше модульных тестов вы напишете, тем лучше вы станете с ними справляться. Есть несколько принципов (лучших практик), которые необходимо помнить для того, чтобы писать эффективные модульные тесты.
□ Каждый блок должен тестироваться независимо. Если ваш метод имеет несколько возможных результатов, то вам нужен модульный тест для каждого из них.
□ Модульные тесты должны существовать независимо от других тестов. Для модульного теста перед его выполнением не должно требоваться выполнение других тестов (или последовательности тестов).
□ Модульные тесты должны покрывать все случаи. Эффективный набор модульных тестов охватывает все возможные условия для данного метода (в том числе проверки границ, нулевые значения, исключения, условную логику и т. д.).
□ Модульные тесты должны работать без дополнительной настройки. Ваши тестовые блоки должны выполняться легко. Если вы создадите такую среду, в которой при каждом запуске тестов необходимо будет делать настройку, то это существенно снижает вероятность того, что команда будет пользоваться вашими тестами.
□ Тестируйте стандартное состояние приложения. Если ваши модульные тесты работают с данными приложения, то вам следует перед каждым выполнением модульного теста возвращать эти данные в их обычное состояние. Так вы обеспечите отсутствие ошибок в других ваших тестах. Вы также даете разработчикам общую платформу для тестирования.
Эти лучшие практики представляют собой несколько указаний по созданию эффективных тестов. По мере того, как вы будете писать все больше и больше тестов, вы создадите собственные правила написания эффективных модульных тестов.