Back to questions
Senior
10
Писали ли вы кастомные декораторы? Можете показать пример?
Companies where asked
MoneyCat
Answer from AI
sobes.tech AI
Да, в QA Automation часто пишут кастомные декораторы для расширения функциональности тестов, например, для логирования, повторного запуска или измерения времени выполнения.
Пример кастомного декоратора на Python с использованием pytest, который повторяет тест при неудаче:
import pytest
from functools import wraps
def retry(times):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
last_exception = None
for _ in range(times):
try:
return func(*args, **kwargs)
except Exception as e:
last_exception = e
raise last_exception
return wrapper
return decorator
@retry(times=3)
def test_example():
assert some_flaky_function() == expected_result
Такой декоратор помогает повысить стабильность тестов, повторяя их несколько раз перед окончательным провалом. Аналогично можно создавать декораторы для логирования, сбора метрик и других целей.