PHPUnit: Jak pozorować funkcję w klasie?
Mam klasę o nazwie „QueryService”. W tej klasie istnieje funkcja o nazwie „GetErrorCode”. W tej klasie jest także funkcja o nazwie „DoQuery”. Możesz więc spokojnie powiedzieć, że mam coś takiego:
class QueryService {
function DoQuery($request) {
$svc = new IntegratedService();
$result = $svc->getResult($request);
if ($result->success == false)
$result->error = $this->GetErrorCode($result->errorCode);
}
function GetErrorCode($errorCode) {
// do stuff
}
}
Chcę utworzyć test phpunit, który przetestuje „DoQuery”. Chcę jednak, aby wynik „GetErrorCode” został określony przez próbę. Innymi słowy, chcę powiedzieć, że jeśli $ errorCode = 1, GetErrorCode musi ominąć wszelką logikę w tej funkcji i po prostu zwrócić słowo „ONE”. Jeśli jest to dowolna liczba inna niż 1, musi zwrócić „NIE”.
Jak to ustawić używając PHPUNIT Mocks?