/ / Test du chemin d'accès à PHPUnit pour les fichiers téléchargés dans Symfony2 - php, symfony, phpunit, fonctionnal-testing

Test du chemin PHPUnit pour les fichiers téléchargés dans Symfony2 - php, symfony, phpunit, fonctionnal-testing

J'ai écrit un test pour vérifier les URL erronées / mortes dans mon application Symfony2.

J'utilise des tests fonctionnels comme suggéré dans http://symfony.com/doc/current/book/testing.html

Le test ouvre un chemin, vérifie tout

    <a...></a>

balises et crée ensuite une demande pour ces liens:

    $client = (new ClientProvider())->getClient();
$crawler = $client->request("GET", $route);
$linkList = $crawler->filter("a");
foreach ($linkList as $link) {
$url = $link->getAttribute("href");
$crawler = $client->request("GET", $link->getAttribute("href"));
//... some assertion
}

Le problème est que certaines balises a contiennent des chemins d'accès aux fichiers, par exemple. "/files/sample.pdf". (chemin du fichier est web / fichiers / ...)

Je veux vérifier si ces fichiers existent, mais PHPUnit m'erreur 404.

Je suppose que c’est parce que phpunit n’utilise pas de serveur web mais travaille directement avec l’application et ne peut donc pas "accéder aux fichiers sous" web / files / ... ".

Est-ce correct ou existe-t-il un moyen de tester cela?

Réponses:

2 pour la réponse № 1

Son correct, phpunit ne va pas à votreserveur Web qui signifie qu'il n'y a pas de fichiers de réécriture / service en cours. Ce que vous pouvez faire est de regex l'URL et de rechercher un modèle de fichier. Si vous le trouvez, vous utilisez une autre méthode pour tester les fichiers, comme celle qui va dans votre dossier public pour le rechercher.

Une autre option consiste à avoir une action pour contrôler la distribution des fichiers. Ainsi, vous aurez plus de sécurité et de contrôle, mais vous devrez changer votre application.