0Pricing
PHP Academy · Lekcja

Asercje i metody testowe

Używaj assertEquals, assertSame, assertNull i innych asercji

Asercje i metody testowe to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.

Czym są asercje?

Asercje weryfikują, czy rzeczywisty wynik działania kodu odpowiada oczekiwanej wartości. PHPUnit udostępnia bogatą bibliotekę metod asercji.

assertEquals a assertSame

assertEquals używa luźnego porównania (==). assertSame używa ścisłego porównania (===) — sprawdza zarówno typ, jak i wartość.

<?php
$this->assertEquals(0, false);      // passes (0 == false)
$this->assertSame(0, false);        // FAILS  (0 !== false)

assertTrue i assertFalse

Sprawdź, czy wartość jest dokładnie równa true albo dokładnie równa false.

<?php
$this->assertTrue(is_string("hello"));
$this->assertFalse(is_numeric("abc"));

assertNull i assertNotNull

Sprawdź, czy wartość jest równa null.

<?php
$user = $repo->find(999);
$this->assertNull($user);

$user = $repo->find(1);
$this->assertNotNull($user);

assertCount

Zweryfikuj, czy obiekt zliczalny zawiera oczekiwaną liczbę elementów.

<?php
$items = $cart->getItems();
$this->assertCount(3, $items);

assertStringContainsString

Zweryfikuj, czy ciąg znaków zawiera podciąg (z uwzględnieniem wielkości liter).

<?php
$html = $template->render();
$this->assertStringContainsString("<h1>Welcome</h1>", $html);

assertInstanceOf

Zweryfikuj, czy obiekt jest instancją określonej klasy lub interfejsu.

<?php
$handler = $factory->create("email");
$this->assertInstanceOf(EmailHandler::class, $handler);

assertThrows / expectException

Oczekuj, że podczas testu zostanie rzucony wyjątek.

<?php
public function test_throws_on_invalid_input(): void
{
    $this->expectException(\InvalidArgumentException::class);
    $this->expectExceptionMessage("must be positive");
    new Product(-1);
}

assertArrayHasKey

Sprawdź, czy tablica zawiera określony klucz.

<?php
$result = $api->getUser(1);
$this->assertArrayHasKey("email", $result);
$this->assertArrayHasKey("id", $result);

assertEqualsWithDelta

Porównuj liczby zmiennoprzecinkowe w ramach określonej tolerancji (delty).

<?php
$this->assertEqualsWithDelta(3.14159, M_PI, 0.001);

Niestandardowe komunikaty błędów

Przekaż komunikat jako ostatni argument dowolnej asercji, aby ułatwić analizę wyników nieudanego testu.

<?php
$this->assertEquals(200, $response->status(), "Expected HTTP 200 OK response");

Podsumowanie

Używaj assertSame do ścisłego porównywania, assertEquals do porównywania luźnego oraz wyspecjalizowanych asercji, takich jak assertInstanceOf, assertCount i assertThrows, aby tworzyć czytelne testy.

Szybkie sprawdzenie

Która asercja sprawdza również typ wartości?

Często zadawane pytania

Czy lekcja „Asercje i metody testowe” jest bezpłatna?

Tak — pełny tekst „Asercje i metody testowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Asercje i metody testowe”?

Używaj assertEquals, assertSame, assertNull i innych asercji Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Asercje i metody testowe”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konfiguracja PHPUnit i pierwszy test
  2. Asercje i metody testowe
  3. Dostawcy danych dla testów parametryzowanych
  4. Mockowanie zależności za pomocą PHPUnit
← Powrót do PHP Academy