17 неделя на Хекслете
06 января 2023, пятница.
Прошло семнадцать недель. За эту неделю набрал 64 балла, всего уже 1403 балла. Погрузился в вопросы автоматического и ручного тестирования.
Результаты за неделю из запланированного и не только:
Начать и завершить курс "Python: Автоматическое тестирование". Курс начал. Прошел 6 из 11 уроков. Сейчас застрял на упражнении к уроку №7. Курс в целом идёт тяжело. Для себя ощущаю разрыв в сложности теории и упражнений. То есть материал в теории понятен и в целом хорошо сформулирован, но приведённые в теории примеры недостаточны для того, чтобы решить упражнения. Гуглю. Так же в уроке №2, в задании к нему, на мой взгляд, неверно сформирована сама задача или описание ожиданий от работы кода. Об этом напишу ниже.
Решать испытания к курсам "Python: Функции" и "Python: Декларативное программирование". Справился ещё с одним испытанием и на этом пока всё. Нужно ещё "прокачать" скилл.
Познакомиться с проектом "Вычислитель отличий". До проекта пока не дошел.
Нашел для себя на codewars.com. Это такой сайт, где можно решать задачи на различных языках программирования и получать за решение баллы рейтинга. Баллы сгруппированы в уровни. И сами задачи разбиты по сложностям, в соответствии с уровнями. Ну а после решения задачи можно ознакомиться с ответами других участников. Именно такой штуки, на мой взгляд, не хватает в Хекслете. Просто огромная куча хорошо описанных и ранжированных по сложности задач, чтобы можно было сидеть и набивать руку.
Наблюдения ощущения и рассуждения:
- Курс "Python: Автоматическое тестирование" - курс? ощущения от которого схожи с ощущениями от урока №8 и упражнения к нему в курсе "Python: Функции". Теория компактная и хорошая, но упражнения как будто убегают на шаг вперёд теории. Не хватает показательных примеров. У меня сложилось ощущение, что я как будто пропустил часть курса и вынужден решать упражнение из середины. Сижу, сержусь и туплю.
Ещё несколько ставит в тупик ситуация с заданием в конце урока №2 "Зачем и как писать тесты?". Свои вопросы я задал в поддержку, но ответы на мои вопросы так и не разрешили ситуацию. Возможно, это я что-то не так понимаю. В любом случае, навык по автоматическим тестам развивать буду и вернусь к данному вопросу ещё раз через некоторое время. А здесь приведу обсуждение со службой поддержки:
Антон Тюрин ТС:
Выполнил самостоятельное задание урока:
- Воспроизведите структуру получившуюся в конце урока.
- Запустите тесты, убедитесь что они работают. Попробуйте их сломать
При "ломании" теста обратил внимание на следующее обстоятельство:
Если в коде capitalize.py "закоментить" исключение пустой строки, то при запуске файла test_capitalize.py тест выдаёт запись "IndexError: string index out of range" при этом сообщение "Exception: Функция работает неверно!" не выдаёт.
При этом если "ломать" сам файл test_capitalize.py и заменить
if capitalize('hello') != 'Hello':
на if capitalize('hello') != 'He123llo':
, то результат теста выводит "Exception: Функция работает неверно!".
Запускаю всё через терминал командой PYTHONPATH=lessons python3 tests/test_capitalize.py. В соответствии с адресом папки у меня в рабочей области.
Вероятно, что-то не так с заданием, или я что-тоне верно понял. Прошу объяснить или исправить.
Ivan Mamtsev Поддержка:
Если в коде capitalize.py "закоментить" исключение пустой строки, то при запуске файла test_capitalize.py тест выдаёт запись "IndexError: string index out of range" при этом сообщение "Exception: Функция работает неверно!" не выдаёт.
Добрый день, как раз и не выдает запись, потому что вы закомментировали перехват ошибки.
Антон Тюрин ТС:
Ivan Mamtsev, я "закаментил" исключение в проверяемом файле capitalize.py. Следовательно тест test_capitalize.py при передаче пустой строки должен получить от функции не такую же пустую строку, а сообщение об ошибке, после которого вывести "Exception: Функция работает неверно!". Так вот этого не происходит.
Ivan Mamtsev Поддержка:
Добрый день, а можете сохранить ваш код в репозитории и скинуть ссылку?
Антон Тюрин ТС:
Ivan Mamtsev, добрый день. Вот ссылка на репозиторий:
https://github.com/AntonTyurin87/hexlet_pytest.git
В README оставил некоторые текстовые пояснения. Так же в самих файлах оставил комментарии.
Ivan Mamtsev Поддержка:
У вас две несвязанных ситуации:
В первом случае вы ломаете функцию, убираете случай обработки пустой строки, и у вас выскакивает исключение, что нет такого элемента по индексу.
Во втором, вы поменяли условие на котором надо рейзить наше исключение, и теперь оно срабатывает при верной работе функции.
Антон Тюрин ТС:
Ivan Mamtsev, согласно задания при запуске тестирующая программа должна проверить два случая (случай пустой строки и случай строки, которая будет начинаться с большой буквы). Если тестируемая функция работает не верно, то должно появиться сообщение: "Exception: Функция работает неверно!". Но если в тестируемом файле убрать исключение в виде пустой строки, то тестирующая программа вместо вывода сообщения об ошибке просто сама свалится в ошибку.
Считаю это не соответствующим условию задания. Да и самой идеи тестирования. Получается тест не сообщает мне о проблемном месте, а просто не работает.
Может кто-либо из читателей сможет разобраться в ситуации и сделает свой комментарий в обсуждении
Курс «Python: Автоматическое тестирование»
↳ Урок «Зачем и как писать тесты?»
Как вижу задачи на следующую неделю:
- Завершить курс "Python: Автоматическое тестирование".
- Решать испытания к курсам "Python: Функции" и "Python: Декларативное программирование".
- Познакомиться с проектом "Вычислитель отличий".
- Составить пост/отзыв о проекте "Игры разума".
Первый пост с целеполаганием https://ru.hexlet.io/blog/posts/moy-pervyy-den-obucheniya-na-hekslet
Первая неделя https://ru.hexlet.io/blog/posts/pervaya-nedelya-na-hekslete-kak-idyot
Вторая неделя https://ru.hexlet.io/blog/posts/vtoraya-nedelya-na-hekslete-kak-idyot
Третья неделя https://ru.hexlet.io/blog/posts/tretya-nedelya-na-hekslete-kak-idyot
Четвёртая неделя https://ru.hexlet.io/blog/posts/chetvyortaya-nedelya-na-hexlete
Пятая неделя https://ru.hexlet.io/blog/posts/pyataya-nedelya-na-hekslete
Шестая неделя https://ru.hexlet.io/blog/posts/shestaya-nedelya-na-hekslete-3c17201d-be42-47bc-8199-1a0e35c0c81d
Седьмая неделя https://ru.hexlet.io/blog/posts/sedmaya-nedelya-na-hekslete
Восьмая неделя https://ru.hexlet.io/blog/posts/vosmaya-nedelya-na-hekslete
Девятая неделя https://ru.hexlet.io/blog/posts/devyataya-nedelya-na-hekslete
Десятая неделя https://ru.hexlet.io/blog/posts/desyataya-nedelya-na-hekslete
Одиннадцатая неделя https://ru.hexlet.io/blog/posts/odinnadtsataya-nedelya-na-hekslete
Двенадцатая неделя https://ru.hexlet.io/blog/posts/dvenadtsataya-nedelya-na-hekslete
Тринадцатая неделя https://ru.hexlet.io/blog/posts/trinadtsataya-nedelya-na-hekslete
Четырнадцатая неделя https://ru.hexlet.io/blog/posts/14-nedelya-na-hekslete
Пятнадцатая неделя https://ru.hexlet.io/blog/posts/15-nedelya-na-hekslete
Шестнадцатая неделя https://ru.hexlet.io/blog/posts/16-nedelya-na-hekslete
Совмещение учебы с работой и самоорганизация https://ru.hexlet.io/blog/posts/sovmeschenie-ucheby-s-rabotoy-i-samoorganizatsiya