HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Любое утверждение можно превратить в проверку на истинность:</p>
1 <p>Любое утверждение можно превратить в проверку на истинность:</p>
2 <p>Проблема в том, что в таком случае пострадает вывод. Отлаживать такие проверки значительно сложнее, чем специализированные проверки, заточенные под конкретную ситуацию. PHPUnit поставляется с большим числом готовых утверждений, часть из которых используется достаточно часто. Здесь мы рассмотрим некоторые из них.</p>
2 <p>Проблема в том, что в таком случае пострадает вывод. Отлаживать такие проверки значительно сложнее, чем специализированные проверки, заточенные под конкретную ситуацию. PHPUnit поставляется с большим числом готовых утверждений, часть из которых используется достаточно часто. Здесь мы рассмотрим некоторые из них.</p>
3 <h2>Массивы</h2>
3 <h2>Массивы</h2>
4 <p>Рассмотрим проверки для массивов:</p>
4 <p>Рассмотрим проверки для массивов:</p>
5 <h2>Строки</h2>
5 <h2>Строки</h2>
6 <p>Перейдем к проверкам для строк:</p>
6 <p>Перейдем к проверкам для строк:</p>
7 <h2>Печать на экран</h2>
7 <h2>Печать на экран</h2>
8 <p>Иногда результат работы кода доступен только как вывод в консоль. В таком случае не существует никакого возврата значения из функции, которое можно сравнить с ожидаемым. Для таких ситуаций в PHPUnit есть несколько специализированных утверждений. Они перехватывают вывод (STDOUT) и дают возможность проверить его:</p>
8 <p>Иногда результат работы кода доступен только как вывод в консоль. В таком случае не существует никакого возврата значения из функции, которое можно сравнить с ожидаемым. Для таких ситуаций в PHPUnit есть несколько специализированных утверждений. Они перехватывают вывод (STDOUT) и дают возможность проверить его:</p>
9 <p>В этом коде expectOutputString() проверяет точное соответствие, что не всегда удобно. Если хочется проверить только часть вывода, то можно воспользоваться другим способом:</p>
9 <p>В этом коде expectOutputString() проверяет точное соответствие, что не всегда удобно. Если хочется проверить только часть вывода, то можно воспользоваться другим способом:</p>
10 <h2>Ошибки</h2>
10 <h2>Ошибки</h2>
11 <p>Обработка ошибочных ситуаций - это тоже логика, которую нужно программировать и тестировать. Когда что-то идет не так, вызываемый код может выбрасывать исключения:</p>
11 <p>Обработка ошибочных ситуаций - это тоже логика, которую нужно программировать и тестировать. Когда что-то идет не так, вызываемый код может выбрасывать исключения:</p>
12 <p>Исключения не работают как возврат из функций. Вместо этого, они поднимаются по стеку вызовов, до тех пор пока их не перехватят. Поэтому в PHPUnit для работы с исключениями используется специальное утверждение expectException():</p>
12 <p>Исключения не работают как возврат из функций. Вместо этого, они поднимаются по стеку вызовов, до тех пор пока их не перехватят. Поэтому в PHPUnit для работы с исключениями используется специальное утверждение expectException():</p>
13 <p>Очень важно вызывать expectException() до кода, который выбрасывает исключение. Если исключение выброшено, то весь код после него не вызывается.</p>
13 <p>Очень важно вызывать expectException() до кода, который выбрасывает исключение. Если исключение выброшено, то весь код после него не вызывается.</p>
14 <p>Это далеко не все утверждения, которые есть в PHPUnit. Более того, PHPUnit может расширяться собственными проверками. В целом, вам придется постоянно заглядывать в документацию, чтобы вспомнить, что там есть.</p>
14 <p>Это далеко не все утверждения, которые есть в PHPUnit. Более того, PHPUnit может расширяться собственными проверками. В целом, вам придется постоянно заглядывать в документацию, чтобы вспомнить, что там есть.</p>