Test-driven development (TDD)Входные требования
- Опыт объектно-ориентированного программирования.
- Общее представление о модульном тестировании программ.
- Опыт работы с системой контроля версий.
- Представление о хэш-функциях (для понимания задания).
Задание
В технике TDD требуется разработать прототип класса для аутентификации пользователей в некоторой гипотетической системе. Функционал данного класса должен включать:
- Добавление данных нового пользователя.
- Проверку правильности логина и пароля для зарегистрированного пользователя. В случае неуспешности проверки должно быть ясно, в чем именно проблема: в том, что пользователя с указанными логином нет в базе данных, или в том, что пароль зарегистрированного пользователся введен неправильно.
- Удаление пользователя. Для успешного удаления необходимо правильно ввести пароль пользователя.
- Задание имени используемого файла с именами пользователей и хэш-образами паролей. Это обычный текстовый файл со строками вида: . Ошибки, связанные с неправильным указанием файла, должны обрабатываться.
Обязательно использование системы контроля версий. В истории проекта должен четко прослеживаться цикл: добавление тестов, добавление функциональности, рефакторинг.