Logowanie z użyciem technik testowania (np. mockowanie logera)
Założenie: Napiszemy prosty przykład testowania funkcji logującej, używając mockowania, aby uniknąć zależności od rzeczywistego logera podczas testów.
Krok po kroku:
- Stworzenie interfejsu logera: Definiujemy interfejs, który będzie reprezentował nasz logger. Dzięki temu w testach możemy podmienić rzeczywisty logger na jego mock.
- Implementacja logera: Tworzymy klasę implementującą interfejs
LoggerInterface
. Ta klasa będzie odpowiedzialna za rzeczywiste logowanie. - Funkcja wymagająca logowania: Tworzymy funkcję, która korzysta z logera.
- Test z mockowanym loggerem: Używamy mocka do testowania funkcji
processData
bez rzeczywistego zapisywania do pliku.
log("Processing data: " . $data);
// ... reszta kodu przetwarzającego dane ...
}
?>
loggedMessages[] = $message;
}
}
$mockLogger = new MockLogger();
processData($mockLogger, "Test data");
assert(count($mockLogger->loggedMessages) === 1);
assert($mockLogger->loggedMessages[0] === "Processing data: Test data");
?>
Ten przykład pokazuje podstawy testowania kodu z zależnościami zewnętrznymi za pomocą mockowania. Zachęcamy do dalszego zgłębiania tematu testów jednostkowych w PHP!