> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/teoriya-avtomatizirovannogo-testirovaniya/obshie-voprosy/kakoe-glavnoe-razlichie-mezhdu-komandami-assert-i-verify-soft-i-hard-assert.md).

# Какое Главное Различие Между Командами ‘Assert’ и ‘Verify’, Soft и Hard Assert??

### 🔑 Главное различие:

* **Assert** ❌ → жёсткая проверка\
  Если условие не выполнено → **тест немедленно прерывается** (Fail).\
  ➝ Используется, когда дальнейшее выполнение теста **не имеет смысла**.
* **Verify** ⚠️ → мягкая проверка\
  Если условие не выполнено → **фиксируется ошибка**, но тест продолжает выполняться дальше.\
  ➝ Используется, когда важно **собрать максимум информации** об ошибках в одном прогоне.

***

### 📌 Пример (Selenium, Python + pytest):

```python
# Assert: жёсткая проверка
assert driver.title == "Login Page"   # если не совпало → тест сразу упадёт

# Verify: мягкая проверка
errors = []
if driver.title != "Login Page":
    errors.append("Неверный заголовок страницы")

# Тест выполнится до конца, потом проверим
assert not errors, f"Ошибки: {errors}"
```

***

### 🧩 Когда что использовать?

* **Assert** → критические условия (например, успешный логин, наличие главного элемента).
* **Verify** → второстепенные проверки (например, цвета кнопок, наличие подсказок, мелкие UI-детали).
