0Pricing
PHP Academy · Урок

Проверки и методы тестов

Используйте 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 — локальная установка не требуется.

Все уроки этого курса

  1. Настройка PHPUnit и первый тест
  2. Проверки и методы тестов
  3. Поставщики данных для параметризованных тестов
  4. Имитация зависимостей с помощью PHPUnit
← Назад к PHP Academy