Mockowanie obiektów
Założenie: Nauczymy się podstaw mockowania obiektów w PHP przy użyciu PHPUnit, aby izolować testowany kod od zależności zewnętrznych.
Krok po kroku:
- Stworzenie prostej klasy: Zdefiniujmy klasę
User
, która pobiera dane użytkownika z zewnętrznego źródła (np. bazy danych). - Napisać test bez mockowania: Spróbujmy napisać test dla funkcji, która używa klasy
User
. To pokaże nam dlaczego mockowanie jest potrzebne. - Mockowanie obiektu: Teraz użyjemy PHPUnit do stworzenia mocka klasy
User
. Zamiast prawdziwej implementacji, mock będzie zwracał zdefiniowaną przez nas wartość. - Wyjaśnienie: W tym przykładzie użyliśmy `$this->createMock(User::class)` aby stworzyć mock obiektu klasy User. Następnie `$this->userMock->method(‘getName’)->willReturn(‘Mockowany Użytkownik’);` definiuje zachowanie mocka – metoda getName będzie zwracać “Mockowany Użytkownik”.
assertEquals("Jan Kowalski", $user->getName());
}
}
?>
userMock = $this->createMock(User::class);
}
public function testGetNameWithMock() {
$this->userMock->method('getName')->willReturn('Mockowany Użytkownik');
$this->assertEquals('Mockowany Użytkownik', $this->userMock->getName());
}
}
?>
Ten przykład pokazuje podstawy mockowania obiektów w PHP z PHPUnit. Mockowanie pozwala na izolowanie testów i pisanie bardziej niezawodnego kodu. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi technikami mockowania!