Возможно, вы также слышали о паттерне «Given-When-Then», похожем на AAA. Этот паттерн также рекомендует разбить тест на три части:
• Given — соответствует секции подготовки (arrange);
• When — соответствует секции действия (act);
• Then — соответствует секции проверки (assert).
В отношении построения теста эти два паттерна ничем не отличаются. Единственное отличие заключается в том, что структура «Given-When-Then» более понятна для не-программиста
Тесты не должны проверять единицы кода (units of code). Вместо этого они должны проверять единицы поведения (units of behavior) — нечто имеющее смысл для предметной области, а в идеале — нечто такое, полезность которого будет понятна бизнесу. Количество классов, необходимых для реализации такой единицы поведения, не имеет значения. Тест может охватывать как несколько классов, так и только один класс или даже всего один маленький метод
Тесты — это тоже код. Их следует рассматривать как часть кодовой базы, предназначенную для решения конкретной проблемы: обеспечения правильности приложения. Юнит-тесты, как и любой другой код, также подвержены ошибкам и требуют сопровождения