Тесты – это не только инструмент для автоматической проверки кода и его корректности, но и отличная документация. Каждый раз, когда мне что-то непонятно в документации к библиотеке, я смотрю на спецификации и быстро нахожу ответ на свой вопрос.
В тестах лучше всего использовать данные, максимально приближенные к реальным: “Пользователь” → “Иван Павлов”, “ip” → “82.100.200.3”, пустой файл → jpeg с вашей кошкой. Таким образом мы получаем хорошую документацию и хорошие примеры использования нашего API.
Чтобы тесты были последовательными, я предпочитаю использовать один домен для тестовых данных. Например, я часто использую:
1. Персонажи и цитаты из “Симпсонов”:
user = User.new(name: "Bart Simpson", email: "bart@simpson.dev")
expect(user.to).to eq "Bart Simpson <bart@simpson.dev>"
2. Персонажи и цитаты из боевиков 90-х:
comment: "Dead or alive... you're coming with me"
3. Лирика песен Эминема или Бейонсе (пожалуйста, не спрашивайте):
do_request(text: "In my shoes, just to see what it's like to be me")
P. S. Некоторые из вас могут упомянуть Faker. Я не использую его, так как считаю, что это анти-паттерн. Я расскажу об этом подробнее в следующем посте.