Какие декораторы использовал при написании тестов
Python
Senior
Без компании
Какие декораторы использовал при написании тестов
Ответы
В тестах чаще всего используют следующие декораторы:
- **`@pytest.mark.parametrize`** – для параметризации тестов, запуска одной функции с разными входными данными:
```
@pytest.mark.parametrize("input, expected", [(1, 2), (3, 4)])
def test_increment(input, expected):
assert input + 1 == expected
```
- **`@pytest.mark.skip`** – пропуск теста:
```
@pytest.mark.skip(reason="Not implemented yet")
def test_feature():
...
```
- **`@pytest.mark.xfail`** – тест ожидаемо падает:
```
@pytest.mark.xfail
def test_broken_feature():
assert False
```
- **`@pytest.fixture`** – создание фикстур для подготовки данных/состояния:
```
@pytest.fixture
def db_connection():
conn = create_connection()
yield conn
conn.close()
```
- **`@mock.patch`** (из `unittest.mock`) – мокирование объектов:
```
@mock.patch("module.function")
def test_mocked(mock_func):
mock_func.return_value = 42
assert module.function() == 42
```
Также могут встречаться:
- `@pytest.mark.timeout` – ограничение времени выполнения теста.
- Кастомные марки (`@pytest.mark.smoke`, `@pytest.mark.integration`) для группировки тестов.