> For the complete documentation index, see [llms.txt](https://igor-19.gitbook.io/qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://igor-19.gitbook.io/qa/avtomatizaciya-testirovaniya/patterny-proektirovaniya-avtomatizirovannogo-testirovaniya/kak-napisat-idealnyi-avtotest-25-principov./atomarnost.md).

# Атомарность

**Что это значит?** Один тест — одна проверка (один сценарий).

**Зачем?** При несоблюдении атомарности, если тест упадёт на одной из пяти условных проверок, то статус других четырёх останется неизвестным. И важно, что не будет выполнена главная проверка, ради которой создавался тест.

**Плохие практики:** в одном тесте проверять разные сценарии, несвязанные элементы, несвязанную логику. Например, после авторизации вместе с именем пользователя проверять ещё и наличие меню. Одновременно проверять бизнес-логику и аналитику. Подстраиваться под окружение (например, в A/B-экспериментах).

**Можно ли нарушить?** Можно делать дополнительные проверки, чтобы удостовериться, что тест идет по верному сценарию. Например, перед взаимодействием с элементом, сначала проверить, действительно ли открыта нужная страница, на которой он должен присутствовать. Можно выполнять связанные по смыслу проверки: вместе с именем пользователя проверить аватарку; в ответе API за раз проверить несколько параметров.
