From b94c94dd69fa60fd1fefc5342d86a8bcd37cc5ec Mon Sep 17 00:00:00 2001 From: Franck Paul Date: Sat, 18 Mar 2023 17:39:03 +0100 Subject: [PATCH] Update native_functions.inc.rst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout de documentation sur la définition du comportement des fonctions bouchonnées. --- .../mocking_systems/native_functions.inc.rst | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/source/fr/mocking_systems/native_functions.inc.rst b/source/fr/mocking_systems/native_functions.inc.rst index a08b616..afa9eb5 100644 --- a/source/fr/mocking_systems/native_functions.inc.rst +++ b/source/fr/mocking_systems/native_functions.inc.rst @@ -26,6 +26,35 @@ atoum permet de très facilement simuler le comportement des fonctions natives d ->exception(function() { $this->testedInstance->loadConfigFile(); }) ; +L'expression ``$this->function->file_exists = …`` permet de définir avec une valeur, une expression ou même une fonction anonyme le comportement souhaité de la fonctionne pour le test. + +Exemple avec la fonction native mail() de PHP : + +.. code-block:: php + + assert('mail') + ->given($this->newTestedInstance()) + ->if($this->function->mail = function (string $to, string $subject, string $message, $headers, string $params = '') use ($that) { + $that + ->string($to) + ->isNotEmpty() + ->boolean(filter_var($to, FILTER_VALIDATE_EMAIL) !== false) + ->isTrue() + ->string($subject) + ->isNotEmpty() + ->string($message) + ->isNotEmpty() + ; + + return true; + }) + ->then + … + .. important:: On ne peut pas mettre de \\ devant les fonctions à simuler, car atoum s’appuie sur le mécanisme de résolution des espaces de nom de PHP.