Closed IgorMaksymov closed 8 years ago
Во входящих параметрах для тестов БД, используются уже закодированные пароли.
А разве в БД должны лежать пароли в чистом виде?
В таком случае постоянно придется использовать шифратор. Мы же методы тестируем. а не работу шифратора. Для примера, сделай в Билдере незашифрованный пароль, а из базы возьми зашифрованный и попробуй его сравнить.
В таком случае постоянно придется использовать шифратор.
Почему ты так считаешь?
Для примера, сделай в Билдере незашифрованный пароль,
Ты ж сам из билдера удалил все пароли.
Чтобы понять мой батхерт, с которым я столкнулся, попробуй организовать тест, в котором ты передаешь незакодированный пароль и пытаешься сравнить его с паролем из БД.
В случае смены шифратора, полетят все тесты, завязанные на него.
Я удалил только в билдере, а надо в датасетах для БД, это вне скоупа моей задачи, поэтому я вынес в отдельный таск.
Так как UserService
и UserDao
не занимаются шифрованием пароля, а просто сохраняют (берут) из базы пароль в неизменном виде, то в каком виде его хранить в тестовой базе - все-равно, главное, чтобы в билдере и базе были одинаковые значения.
Пароли должны лежать в закодированном виде в рабочей базе.
@IgorMaksymov насчет шифратора я не понял, у нас есть для него тесты?
Вообще-то в тестовой базе не хранится ничего. Для конкретного теста создаются конкретные файлы для dbUnit, где можно прописать все что угодно. Если тест тестирует шифратор, то для него можно создать свой файл. Иначе зависимость от шифратора снимается с помощью мока.
Я имел ввиду dbUnit ("в каком виде его хранить в тестовой базе")
@IgorMaksymov также, я не понял, в чем трудность с тестом? Ведь модно для своего теста создать в билдере пользователя с незашифрованым паролем и дополнительный xml для dbunit; таким образом в тесте работать с этими значениями, а остальные тесты не трогать.
при создании юзера в Билдере, логично создавать с незашифрованным паролем, ибо в интеграционном тесте, с использованием шифратора мы получим совершенно не то что хотим. Соответственно, при тестах ДБюнита в БД лучше использовать незашифрованные пароли, чтобы не париться с тем значением которое мы передаем из Обьекта и с значением получаемым из БД. Если из БД получать зашифрованные пасы, то нам придется использовать шифратор, чтобы понять правильное ли значение мы получили. При чем, втупую закодировать текущую строку и сравнить 2 строки нельзя, надо использовать метод из шифратора. т.е. каждый раз создаются разные хеши для одной и той же строки.
@IgorMaksymov то есть, при шифровании одного и того же пароля несколько раз может получится разный зашифрованый пароль?
при создании юзера в Билдере, логично создавать с незашифрованным паролем,
в билдере считай пароля уже нет
да, сам попробуй. При сравнении паролей, шифратор их декодирует, как я понял.
Насколько я понял из документации, метод берет незакодированный пароль, кодирует его, и сравнивает со вторым параметром (закодированным паролем).
Во входящих параметрах для тестов БД, используются уже закодированные пароли. Это значительно усложняет тестирование этих полей и искажает результаты теста. Также надо убрать закодированные пароли из
test_utils.BuilderUti