Il mio team sta cercando di trovare il modo migliore per testare uno dei nostri componenti; lo scopo principale è verificare se l'utente / attore ha il diritto di completare l'operazione richiesta. Il componente è formato da molte funzioni che di solito hanno la seguente struttura (semplificata): Lingua di esempio: PHP
public function addGroup($idEntity, $nameGroup){
if (!$this->logic->isEntityActive($idEntity)){
throw new EntityNotActiveException();
}
if ($idEntity != $this->getServiceLocator()->get('request')->getQuery()->get('idEntity')){
throw new NoRightsException();
}
if ($this->logic->isGroupWithNameAlreadyInDB($idEntity, $nameGroup)){
throw new GroupAlreadyExistException();
}
return $this->logic->addGroupToEntity($idEntity, $nameGroup);
}
Come puoi vedere questo metodo non ha "logica" di per sé (a parte i controlli) e alla fine inoltra semplicemente la richiesta alla logica sottostante. Siamo in conflitto su come testare correttamente questa funzione. Prendiamo in giro tutto? Possiamo farlo e in ogni prova falsificare alcuni "fallimenti", ma il problema rimane che per testare la correttezza della funzione si prende in giro tutto. Ogni singola funzione In tal caso non stai testando nulla. Potremmo davvero usare qualche consiglio su questo problema. Qualcuno può mostrarci esempi di un buon modo per testare una funzione come questa?
Usiamo phpunit. Grazie in anticipo per il tuo aiuto.