Проверки и методы тестов
Используйте assertEquals, assertSame, assertNull и другие проверки
«Проверки и методы тестов» — бесплатный урок PHP Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Что такое утверждения?
Утверждения проверяют, соответствует ли фактический результат работы кода ожидаемому значению. PHPUnit предоставляет обширную библиотеку методов утверждений.
assertEquals и assertSame
assertEquals использует нестрогое сравнение (==). assertSame использует строгое сравнение (===) — проверяет тип AND значение.
<?php
$this->assertEquals(0, false); // passes (0 == false)
$this->assertSame(0, false); // FAILS (0 !== false)assertTrue и assertFalse
Проверьте, что значение в точности равно true или в точности равно false.
<?php
$this->assertTrue(is_string("hello"));
$this->assertFalse(is_numeric("abc"));assertNull и assertNotNull
Проверьте, равно ли значение null.
<?php
$user = $repo->find(999);
$this->assertNull($user);
$user = $repo->find(1);
$this->assertNotNull($user);assertCount
Утвердитесь, что подсчитываемый объект содержит ожидаемое количество элементов.
<?php
$items = $cart->getItems();
$this->assertCount(3, $items);assertStringContainsString
Утвердитесь, что строка содержит подстроку с учётом регистра.
<?php
$html = $template->render();
$this->assertStringContainsString("<h1>Welcome</h1>", $html);assertInstanceOf
Утвердитесь, что объект является экземпляром указанного класса или интерфейса.
<?php
$handler = $factory->create("email");
$this->assertInstanceOf(EmailHandler::class, $handler);assertThrows и expectException
Ожидайте выбрасывания исключения во время теста.
<?php
public function test_throws_on_invalid_input(): void
{
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage("must be positive");
new Product(-1);
}assertArrayHasKey
Проверьте, содержит ли массив определённый ключ.
<?php
$result = $api->getUser(1);
$this->assertArrayHasKey("email", $result);
$this->assertArrayHasKey("id", $result);assertEqualsWithDelta
Сравнивайте числа с плавающей точкой в пределах допустимой погрешности (дельты).
<?php
$this->assertEqualsWithDelta(3.14159, M_PI, 0.001);Пользовательские сообщения об ошибках
Передайте сообщение последним аргументом любого утверждения, чтобы сделать вывод при ошибке теста более информативным.
<?php
$this->assertEquals(200, $response->status(), "Expected HTTP 200 OK response");Итоги
Используйте assertSame для строгого равенства, assertEquals для нестрогого, а специализированные утверждения, такие как assertInstanceOf, assertCount и assertThrows, — для выразительных тестов.
Быстрая проверка
Какое утверждение также проверяет тип значения?
Часто задаваемые вопросы
Урок «Проверки и методы тестов» бесплатный?
Да — полный текст урока «Проверки и методы тестов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Проверки и методы тестов»?
Используйте assertEquals, assertSame, assertNull и другие проверки Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Проверки и методы тестов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Настройка PHPUnit и первый тест
- Проверки и методы тестов
- Поставщики данных для параметризованных тестов
- Имитация зависимостей с помощью PHPUnit