IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PHPUnit] Test fonctionnels


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Par défaut [PHPUnit] Test fonctionnels
    Bonjour,

    Je me demande quelle est la meilleur option pour tester plusieurs cas de figure.

    Cas 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    public static function authenticate(Request $request, Application $app)
      {
        $device_id = $request->get('device_id');
        $secret_code = $request->get('secret_code');
     
        if ($device_id == null)
          $app->abort(400, 'Device id missing');
     
        if ($secret_code == null OR !is_numeric($secret_code))
          $app->abort(400, 'Bad secret code');
     
        $ret = $app['db']->fetchAssoc('
          SELECT `t1`.`id`, `secret_code`
          FROM `clients` AS `t1`
          JOIN `payment_devices` AS `t2`
          ON `clients_id` = `t1`.`id`
          WHERE `t2`.`id` = ?', array($device_id));
        if (!$ret)
          $app->abort(404, 'User not found');
     
        if (intval($secret_code) !== intval($ret['secret_code']))
          $app->abort(401, 'Bad authentification');
     
        return $app->json(array(
          'id' => $ret['id']
          ));
      }
    Cette fonction prend deux paramètres et indique si l'authentification est réussie.

    Pour tester cette fonction deux solutions s'offrent à moi :
    1. Passer par une class intermédiaire qui fait office de "repository" et l'injecter dans la fonction.
      A la place de la requête SQL j'aurai quelque chose comme "$repo->getClient(...)" Cela me permettra de mock l'accès BDD.
    2. Utiliser une fixture importée par PHPUnit (dans ce cas un schéma et des données bdd connue à l'avance)



    Case 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public static function editSecretCode(Request $request, Application $app)
      {
    [...]
        $req_update =  $app['db']->executeQuery('
          UPDATE `clients`
          SET `secret_code` = ?
          WHERE `id` = ?', array($new_secret_code, $user_id));
    [...]
      }
    Cette fonction modifie un champ dans la table des clients.
    Comment tester cette modification ?
    Puis-je supposer que si la méthode ne renvoi pas d'erreur c'est que l'UPDATE a été fait ?

    J'aimerais si possible éviter de passer par les fixtures PHPUnit qui ralentissent le code et sont plus longues à mettre en place et à maintenir.

    Précisions

    Toutes ces fonctions sont des méthodes de webservice, quelle est la meilleur façon de tester :
    • Tester les appels comme un client le ferait et vérifier le retour
    • Tester chaque élément interne et partir du postulat que si chaque élément interne fonctionne alors l'ensemble est cohérent



    Merci pour votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Par défaut
    Up

Discussions similaires

  1. PHPUnit: Test fonctionnels
    Par iowa dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 18/05/2014, 16h16
  2. [2.x] Problème phpunit test fonctionnelle
    Par atchoum34 dans le forum Symfony
    Réponses: 0
    Dernier message: 14/05/2013, 16h18
  3. Réponses: 0
    Dernier message: 03/09/2012, 15h16
  4. Test fonctionnel d'un site web : cherche logiciels
    Par joseph_p dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 11/05/2007, 12h24
  5. Réponses: 5
    Dernier message: 30/08/2006, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo