Конспект і таймкоди
0:00
Які оператори потрібні в автоматизації
Оператори відповідають на практичні питання: чи збіглося actual з expected, чи значення ініціалізоване, чи виконано дві умови, чи status code належить дозволеному набору та як порахувати очікувану кількість сторінок або total price.
1:30
`==`, `!=`, `assert` та `is None`
== і != порівнюють значення. assert actual == expected у разі розбіжності показує вираз і значення, що прискорює діагностику тесту. is перевіряє identity об’єкта, тому для рядків і чисел потрібне ==; типовий коректний automation-випадок для identity — value is None.
and повертає truthy результат лише коли правдиві обидві сторони, наприклад status code 201 і наявний user ID. Для or достатньо однієї правдивої умови, наприклад response code 200 або 201. У тестах кілька зрозумілих assertions часто діагностуються краще за одну велику складену умову.
not errors є короткою перевіркою порожнього списку. browser in supported_browsers і browser not in supported_browsers прямо виражають membership та прибирають ручний цикл. Для allowlist status codes зручно використовувати set: status_code in {200, 204}.
Оператор in для dict перевіряє ключі, а не values. Тому "email" in response відповідає на питання, чи API повернув поле, незалежно від його поточного значення; для перевірки значення потрібне окреме звернення за ключем.
7:02
Арифметика та округлення expected value
Expected result іноді треба обчислити: кількість товарів множиться на ціну, pagination використовує ділення та залишок. Через особливості floating-point результат на кшталт 3 * 9.99 доцільно округлити через round(value, 2) перед грошовим порівнянням; це не перетворює float на точний financial type, але відповідає навчальному прикладу.
Для самостійної роботи залишено порівняння status codes з allowlist, subset-перевірки products, ranges, dictionary keys і конвертацію часових одиниць. Кожну умову варто прочитати вголос як бізнес-твердження: так простіше помітити неправильну межу або переплутаний оператор.