Bonjour à tous,
je découvre les test unitaires et j'aurais quelques questions à vous poser.
J'essaie d'écrire les tests des fonctions du plugin Media de Grafikart que je suis en train de refaire pour CakePHP3 et je suis confronté à un petit problème de compréhension.
Lorsque je fait un test qui passe et que je regarde le code coverage, celui ci reste toujours rouge alors qu'il me semble que le test couvre bien la fonction ou au moins une partie... J'avoue qu'à ce stade, je ne comprends pas trop pourquoi ça reste comme ça.
C'est un peu comme si mon test n'était pas bon (j'ai juste ?)
Voici la simple fonction de mon Entity que j'essaie de tester :
public function getIconAndType()
{
if(isset($this->file)){
$pathinfo = \pathinfo($this->file);
$extension = $pathinfo['extension'];
if(!\in_array($extension, $this->pictures)){
$this->type = $extension;
$this->icon = 'Media.' . $extension . '.png';
}else{
$this->type = 'pic';
$this->icon = $this->file;
}
}
return $this;
}
et son test unitaire (seul un partie est faite) :
public function testGetIconAndTypeWithPicType()
{
if(isset($this->file)){
$pathinfo = \pathinfo($this->file);
$extension = $pathinfo['extension'];
if(in_array($extension, $this->pictures)){
$this->type = 'pic';
$this->icon = WWW_ROOT . DS . 'img' . DS . 'upload' . DS . '2015' . DS . '07' . DS . 'testHelper.png';
$this->assertEquals('pic', $this->type);
}
}
}
Je pense que mon test est mal rédigé mais je n'arrive pas à voir comment faire pour l'améliorer et l'optimiser.
Je tiens à préciser que je ne demande pas qu'on m'écrive le test de la fonction mais plutôt qu'on m'aiguille sur les erreurs que j'ai pu faire en la rédigeant afin de ne pas les reproduire pour la suite des tests.
Merci d'avance pour vos éclairages,
Romain