Comment puis-je faire une requête POST à partir d'un Rapporteur d'angles de test?
Je voudrais faire une requête POST (avec une charge utile JSON) à un serveur de base de données avant d'exécuter une Rapporteur de test, afin d'injecter des données de test. Comment puis-je faire, si cela est possible?
Voir stackoverflow.com/questions/21055960/...
Il n'y a pas d'autre moyen? Je n'aurais pas l'esprit en utilisant le Nœud http module, mais ne peut pas comprendre comment faire des appels asynchrones de Jasmin tests.
Il n'y a pas d'autre moyen? Je n'aurais pas l'esprit en utilisant le Nœud http module, mais ne peut pas comprendre comment faire des appels asynchrones de Jasmin tests.
OriginalL'auteur aknuds1 | 2014-02-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement utiliser une autre bibliothèque pour exécuter la requête POST si vous voulez juste de remplir votre base de données.
Par exemple, vous pouvez utiliser superagent dans votre
beforeEach
comme suit:OriginalL'auteur Der Hochstapler
J'ai trouvé un moyen de le faire, avec l'aide de D. Andres L'essentiel, c'est d'exécuter un script dans le navigateur via
browser.executeAsyncScript
et injecter le $service http. Le $service http est alors dit de faire une requête POST. Ici l'exemple de CoffeeScript de comment c'est fait:Je n'ai pas le code en face de moi, mais ça fait partie de la Angulaire du mondial de l'API. Autant que je me souvienne que la fonction est exécutée dans le contexte de la page chargée (par exemple,
http://your-angular-app.com
), qui doit avoir chargé Angulaire.OriginalL'auteur aknuds1
Il est possible d'exécuter certaines async code d'installation dans votre onPrepare fonction de votre rapporteur config. Vous devez indiquer explicitement rapporteur, à attendre que votre requête à la fin. Cela peut être fait avec l'écoulement.await() qui joue à nice avec des promesses.
** En tant que rapporteur de la version 1.1.0 sur préparer pouvez revenir à une promesse, à l'utilisation de
flow
à explicitement d'attendre la promesse de résoudre est inutile.Voir: https://github.com/angular/protractor/blob/master/CHANGELOG.md
Oui, il est exécuté une seule fois, avant que tous les tests sont exécutés. Il ne ressemble pas à onPrepare permettrait de faire ce que vous voulez.
l'écoulement.attendent semble fonctionner dans un
it
oubeforeEach
fonction aussi; je ne pense pas qu'il y a une restriction àonPrepare
.Pardonnez-moi si je me manque quelque chose, mais ne pas
await
s'attendre à une promesse? Le rapporteur permet de retourner une promesse d'unonPrepare
de la fonction, de sorte que vous pourriez fairereturn setup_data({data: 'test'});
.Ceci a été écrit avant le Rapporteur 1.1.0, avant de onPrepare vous a permis de renvoyer une promesse. Il pourrait en effet être simplifié.
OriginalL'auteur rjferguson21
Une autre façon de faire le POST de demande de rapporteur, est à l'aide de "http"
OriginalL'auteur shwetha dj naik