Mock toi moins

A force de tripatouiller, j’ai fini par trouver comment bouchonner la fonction PHP native mail(), avec le code suivant :

$this
    ->assert('mail')
    ->given($this->newTestedInstance())
        ->if($this->function->mail = true)
        ->then
            ->boolean($this->testedInstance->sendMail('contact@example.com', 'Subject', 'Content'))
                ->isTrue()
            ->function('mail')
                ->wasCalled()
                ->once()

    ->assert('mail failed')
    ->given($this->newTestedInstance())
        ->if($this->function->mail = false)
        ->then
            ->exception(function () { $this->testedInstance->sendMail('contact', 'Subject', 'Content'); })
;

Cela dit je n’ai toujours pas compris à quoi servait les lignes 4 et 14 !

Mais bon on va dire que c’est pas grave et maintenant je galère à bouchonner la fonction PHP native fsockopen() ; j’ai essayé avec ce code mais nope, ça bouchonne pas !

$header_from = 'From: contact@dotclear.org';
$header_type = 'Content-Type: text/plain; charset=UTF-8;';

$this
    ->assert('mail')
    ->given($this->newTestedInstance())
        ->if($this->function->fsockopen = true)
        ->then
            ->variable($this->testedInstance->mail('contact@example.com', 'Subject', 'Content', $header_from))
                ->isNotFalse()
            ->function('fsockopen')
                ->wasCalled()
                ->once()

    ->assert('mail no from')
    ->given($this->newTestedInstance())
        ->if($this->function->fsockopen = false)
        ->then
            ->exception(function () { $this->testedInstance->mail('contact@example.com', 'Subject', 'Content'); })
;

Je trouve ça un poil lourd tout de même devoir faire du reverse-engineering sur l’outil de test ! Bon, il est où le code source de la propriété function (utilisée ligne 7 et 17) ?

Bon le code va pas servir à grand chose surtout qu’il y a 0 (zéro) documentation dedans, et quand je dis 0 c’est vraiment zéro, pas un seul commentaire ! J’ai rarement vu ça dans un projet de cette taille…

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15653

Haut de page