Описание: Используйте данные для тестов, которые будут понятны для того, кто будет читать ваши тесты. Это могут быть потенциальные фабрики данных и так далее.

Мотивация

Какие данные вы используете для test-first тестов? Используйте данные, которые делают ваши тесты проще для чтения и сопровождения. Вы пишите тесты для аудитории. Не разбрасывайтесь значениями данных для того, только чтобы ими разбросаться. Если есть разница между значениями данных, то это должно быть осмысленно. Если нет концептуальной разницы между 1 и 2, то используйте 1.

Обсуждение

Тестовые данные (Test Data) не должны давать вам уверенность в себе. Если ваша система имеет две точки входа, тогда и ваши тесты должны покрывать несколько точек входа. Однако, не нужно иметь список из десяти пунктов как входных данных, если три из этих пунктов приведет вас к одному и тому же.

Один трюк в тестовых данных (Test Data) состоит в том, чтобы попытаться никогда не использовать одну и ту же константу для обозначения более чем одной вещи. Если мы тестируем метод сложения чисел, заманчиво протестировать 2+2, потому что это классический пример сложения или 1+1, потому что это очень просто. Но что будет если мы поменяем местами аргументы в реализации? Хорошо, возможно для операции сложения это и не имеет значения, но вы поняли идею.

Как альтернатива тестовым данным (Test Data) существуют реалистичные данные (Realistic Data), в которых вы используете данные из реального мира. Реалистичные данные (Realistic Data) полезны, когда:

  • Вы тестируете системы реального времени используя артефакты внешних событий, собранных из реального исполнения.
  • Вы сопоставляете выход текущей системы с выходом предыдущей системы. (Параллельное тестирование)
  • Вы проводите рефакторинг для моделирующего устройства и ожидаете точно такие же ответы, когда завершите, особенно если точность с плавающей запятой может стать проблемой.