2010-10-06 2 views
1

Je suis l'analyse d'une requête PUT ainsi:comment tester l'analyse syntaxique de la méthode PUT PHPUnit

$raw = file_get_contents('php://input'); 
$params = array(); 
parse_str($raw, $params); 

et je voudrais injecter un peu de contenu de test dans php://input pour le tester (et pour certains non-unité tests aussi).

J'ai essayé de google un peu le sujet, mais 'put' est un mot court et je n'ai rien obtenu de pertinent.

Je suis prêt à changer un peu mon code d'analyse pour aider à tester ou le supprimer si PHP 5.3 a déjà une infrastructure pour cela (je n'ai rien trouvé dans les notes de version).

Répondre

3

Vous ne pouvez pas écrire sur le flux php://input (et vous ne pouvez généralement le lire qu'une seule fois). Au lieu de coder en dur l'emplacement du flux, que diriez-vous de le laisser être configuré dans votre analyseur? De cette façon, vous pouvez utiliser un objet simulé dans vos tests unitaires qui a un emplacement différent (par exemple, fichier ou flux php://temp).

+0

+1 Utilisez l'injection de dépendances pour basculer les flux à tester. –

Questions connexes