Ну что на этот раз? Новое тестирование?

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

Assertions (утверждения) — это инструкции, которые «утверждают» определенный кейс в программе. В Python они выступают булевыми выражениями, которые проверяют, является ли условие истинным или ложным. Если оно истинно, то программа ничего не делает и переходит к выполнению следующей строчки кода.

То есть выходит, что при запуске такого кода:

x = 'please print me'
assert x == 'please don_t print me', 'Переменная x не ссылается на строку please don_t print me'
print(x)  

Программа упадёт с ошибкой(протестировано на Python 3.11.9):

assert x == 'please don_t print me', 'Переменная x не ссылается на строку please don_t print me'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Переменная x не ссылается на строку please don_t print me

То есть мы не увидим вывода переменной x так-как в ней хранится строка 'please print me' а не 'please don_t print me', а тесте мы бы хотели увидеть именно 2 из этих строк.

Давайте взглянем на синтаксис обычной проверки с assert:

assert условие, 'ошибка которая должна выводиться в случае если условие не срабатывает(не возвращает True)'

А вот пример тестирования реальной задачи из этого модуля:

Мой код для решения задачи  помещается в 13 строк, с учётом комментария, в котором чётко написано, что вот оно моё место для написания решения задачи, но что же было заготовлено коварными создателями сайта ниже???

А дальше идёт наш код с ассертами, в котором порой используются довольно сложные вещи для проверки вашего кода и в некоторых задачах, на ваши 15-25 строчек кода будут идти наши 50 строчек тестирования, то есть под большинство задач тесты заготовлены заранее в нижнем блоке кода.

-А стоит ли мне трогать этот блок?

Нет мы настоятельно просим вас не трогать эти блоки с тестирование: не удалять, не изменять и не добавлять код в этих блоках. Если вы случайно изменили или удалили или добавили туда код и не помните то, как он до этого выглядел, просто скопируйте код который вы успели написать для решения(Это нужно, чтобы не писать код заново) нажмите Сбросить решение  и ваш код сброситься до начальных значений.

В каждом ассерте мы постарались передать удобные для вашего понимания строки, чтобы они реально могли помогать вам при исправлении ошибок. 

Наша рекомендация заключается в том, чтобы вы пытались решать непростые для вас задачи в редакторах кода по типу VSCode или IDE по типу PyCharm. Эти программы, позволяют вам удобнее работать с кодом. Вот например, если бы я решал прошлую задачу, я бы кликнул мышкой на любое место в поле для ввода кода, нажал бы CTRL + A, чтобы скопировать весь код заготовленный код, написал бы  решение в нужном месте и запустил бы программу, и пытался бы решить задачу до тех пор, пока не перестанет выскакивать AssertionError:......, и как только все тесты пройдут , я скопирую решение и вставлю его на сайт, чтобы посмотреть на результат выполнения задачи

В тестах к задачам возможны ошибки, если увидите какой-то странный баг, напишите нам в комментарии или в в форму обратной связи - https://pyhub.ru/feedback/, но пишите только в том случае, если вы на 101% уверенны, что ошибка не в вашем коде. Порой мы не замечай кучу мелочей)

В общем, мы желаем вам удачи! И даже если вы читатель, который не купил полный доступ к курсу, надеюсь это лекция была для вас полезна! 

Перейти к следующему шагу

Комментарии