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
- Konfiguracja PHPUnit i pierwszy test
- Asercje i metody testowe
- Dostawcy danych dla testów parametryzowanych
- Mockowanie zależności za pomocą PHPUnit