Unit é de test d&rsquoextrémité personnalisée API de repos WordPress

La réponse. Cela respecte la séparation des préoccupations.
C’est ce que j’ai présenté dans mon cours sur le développement de WordPress moderne avec l’api rest. Apprenez comment utiliser lrsquoAPI CRUD conçue par PHP pour accéder aux données drsquoun plug in ou drsquoun site. Je vais donc montrer comment lrsquoencapsuler dans un paramètre API personnalisé. Jrsquoai également introduit des paramètres API personnalisés sur Torque. Ce type drsquoisolation signifie que chaque système peut être testé individuellement. testez le système CRUD, pouvez tester en toute sécurité le chemin API autour du système CRUD pendant que le système CRUD fonctionne correctement. Crsquoest ainsi que nous pouvons supposer que lrsquoinfrastructure API de repos sous jacente du noyau fonctionne.
Par conséquent, le test à lrsquounit é pour le chemin de lrsquoAPI rest nrsquoa besoin que de deux choses: vérifier que le chemin a été ajouté correctement et vérifier que la réponse répond aux attentes. Encore une fois, nous supposons que tout le reste de lrsquoapplication a été testé, donc crsquoest ce dont nous avons besoin. Regardons les deux côtés. Tester lrsquoajout drsquoun paramètre avant de vérifier que le paramètre fonctionne correctement, nous devons nous assurer qursquoil a été ajouté. Ce type de test est très simple, mais il détecte les erreurs qui se produisent lorsque Register _ rest route () nrsquoest pas utilisé à ce moment là.
Il est important de créer une instance virtuelle du serveur wp u rest U Lorsque configurez des tests pilotes pour lrsquoAPI rest. nous ne le faisons pas, nous ne pourrons pas vraiment tester le système. Dans un test unitaire, appelez la méthode Setup () avant drsquoeffectuer le test. Ça nous permet drsquoarranger les choses drsquoabord. Voici comment configurer les tests pour srsquoassurer que lrsquoAPI rest est correctement chargée: Serveur = $WP _ rest server = nouveau serveur WP rest Server
Do _ action (lsquorest API initrsquo)
}
}
Ceci remplit le serveur global $WP _ rest et exécute lrsquoopération rest API init. Sans ça, aucun de nos tests nrsquoéchouerait,
Lrsquoéchec peut être dû à une mauvaise conception de lrsquoessai. Maintenant que tout va bien, je veux définir une propriété de classe avec le nom et lrsquoespace de nom du chemin pour vérifier qursquoil est dans le chemin ajouté par lrsquoAPI rest. Voici le Code mis à jour qui me donne les informations suivantes: lrsquoAPI class test _ étend WP unittestcase {
* *
Essayez de restaurer le serveur
* *
Var WP _ rest Server
*
$le serveur est protégé
Protégé $namespace _ route = lsquocratère formulairersquo
Paramètres de fonction communs ()
Parent:: Setup ()
Var WP _ rest Server $WP rest Server
Global $WP _ rest Server
$this gt server = $wp u rest u server = new wp u rest u Server
Do _ action (lsquorest API initrsquo)
}
} une fois terminé, je peux tester deux choses en utilisant WP _ rest Server:: get routes (). Cette méthode renvoie un tableau de routage. Les clés de tableau sont des routes, telles que
lt?php
classe limited_crud {
funzione statica pubblica save( $value ){
if( absint( $valore ) LrsquoAPI class test _ étend WP unittestcase {
* *
Essayez de restaurer le serveur
* *
Var WP _ rest Server
*
$le serveur est protégé
Protégé $namespace _ route = lsquocratère formulairersquo
Paramètres de fonction communs ()
Parent:: Setup ()
Var WP _ rest Server $WP rest Server
Global $WP _ rest Server
$this gt server = $wp u rest u server = new wp u rest u Server
Do _ action (lsquorest API initrsquo)
}
Test de fonction publique _ Register Routing () {
$route = $this gt Server gt get _ route ()
$this gt Assert arrayhaskey ($this gt namespace Routing, $routes)
}
Fonction publique test _ Endpoint ()
$the _ route = $this gt The Route of the namespace
$route = $this gt Server gt get _ route ()
Foreach ($PATH is $PATH = gt $PATH _ configuration) {
(0 = = = strpo ($PATH, $PATH) {
$this gt assertion true (IS _ array ($route config)
Foreach ($route _ config as $i = gt $Endpoint)
$this gt assertion arrayha
ALS (2, count ($Data)
$this gt assertiequalsets (array ($this gt Editor _ ID, $this gt author ID), WP List pick ($Data,
1 of 3 posts
$request = new WP _ rest request (lsquogetrsquo, lsquo WP v2 postsrsquo)
$request gt Setting Parameters (lsquoauthorrsquo, $this gt Editor ID)
$Response = $this gt Server gt Schedule ($Request)
$this gt assertion is equal to (200, $Response gt get _ Status ()
$Data = $reply gt get Data ()
$this gt assertion is equal to (1, count ($Data)
$this gt assertion is equal to ($this gt Editor _ ID, $data [0] [lsquoauthorrsquo])
} ce code consiste à tester de nombreux scénarios différents. Créez une requête à chaque fois en utilisant une nouvelle instance de la classe WP _ rest request () et envoyez la requête en utilisant le serveur WP rest pour créer une réponse vérifiable. Crsquoest un bon exemple de la façon drsquoobtenir un message dans le format de réponse de lrsquoAPI rest sans faire de demande de boucle.
Nous lrsquoutilisons pour tester le chemin. Supposons que ayez un chemin qui prend un ID à la fin de lrsquoURL et renvoie le nom de lrsquoélément. Nous voulons tester ceci: lrsquoAPI class test _ étend WP unittestcase {
* *
Essayez de restaurer le serveur
* *
Var WP _ rest Server
*
$le serveur est protégé
Protégé $namespace _ route = lsquocratère formulairersquo
Paramètres de fonction communs ()
Parent:: Setup ()
Var WP _ rest Server $WP rest Server
Global $WP _ rest Server
$this gt server = $wp u rest u server = new wp u rest u Server
Do _ action (lsquorest API initrsquo)
}
Chemin de la fonction publique _ name Test () {
$request = new WP _ rest request (lsquogetrsquo, lsquo API v2 namersquo)
$Response = $this gt Server gt Schedule ($Request)
$this gt assertion is equal to (200, $Response gt get _ Status ()
$Data = $reply gt get Data ()
$this gt Assert arrayhaskey (lsquonamersquo, $Data)
$this gt assertion is equal to (lsquoShawnrsquo, $data [lsquonamersquo)
}
} ce que je teste ici, crsquoest que ma requête renvoie un code drsquoétat 200 qui crée un tableau avec le nom de la clé et la valeur de la clé de tableau est cor

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins