PHPUnit: Como zombar de uma função em uma classe?
Eu tenho uma classe chamada "QueryService". Nesta classe, existe uma função chamada "GetErrorCode". Também nesta classe é uma função chamada "DoQuery". Então você pode dizer com segurança que eu tenho algo assim:
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
}
}
Eu quero criar um teste phpunit que irá testar "DoQuery". No entanto, quero que o resultado de "GetErrorCode" seja determinado por uma simulação. Em outras palavras, quero dizer que, se $ errorCode = 1, GetErrorCode deve ignorar qualquer lógica que esteja nesta função e apenas retornar a palavra "ONE". Se for qualquer número diferente de 1, deve retornar "NÃO".
Como você configura isso usando PHPUNIT Mocks?