PACT est un outil de test de contrat axé sur les consommateurs. Cela signifie que le contrat est écrit dans le cadre des tests du consommateur. Un avantage majeur de ce modèle est que seules certaines parties de la communication qui sont effectivement utilisées par le ou les consommateurs sont testées. Cela signifie à son tour que tout comportement de fournisseur non utilisé par les consommateurs actuels est libre de changer sans casser les tests. Ce guide vous guidera tout au long du processus de création d`une application REST Spring avec ses contrats et la consommation du contrat au sein d`une autre application Spring. Projet de contrat de nuage de printemps fondamentalement, le test couvre les mêmes aspects que notre première version. Mais il reprend toujours les dernières définitions de contrat. Cela peut être appelé une approche de test de contrat de fournisseur. Le propriétaire de l`interface publie les informations sur la structure de l`événement qu`il émet (par exemple le contrat). Un consommateur peut utiliser le contrat pour affirmer que les événements qui suivent le contrat peuvent être traités.

Maintenant, tout ce que nous devons faire est d`annoter notre test amélioré sur le côté de la caisse avec @AutoConfigureStubRunner et utiliser le StubTrigger pour envoyer le message stub dans. Le Spring-Cloud-Contract-stub-Runner télécharge le pot stub avec notre contrat à partir d`un référentiel maven et l`émet dans notre application. Ceci est fait sans interagir avec un courtier en cours d`exécution. Une fois l`événement émis, nous pouvons exécuter nos assertions pour vous assurer que l`effet correct peut être observé. Dans notre cas, nous vérifions que la référence correcte du produit a été sauvegardée. Notre test refactorisé ressemble à ceci: vous allez configurer deux micro-services un fournissant son contrat, et l`autre consommant ce contrat pour s`assurer que l`intégration au service de fournisseur de contrat est alignée avec les spécifications. Si, à l`avenir, le contrat du service des producteurs change, les tests du service consommateur échouent à la suite de l`incompatibilité potentielle. Le contrat du service REST peut être défini comme un script. groovy. Ce contrat spécifie que s`il y a une demande GET à URL/person/1, Sample Data ID = 1, nom = Foo et nom = Bee représentant une entité Person sera retourné dans le corps de réponse de Content-type application/JSON. Les contrats du service de produit sont publiés dans un bocal de stub vers un référentiel maven. Ce pot de stub peut être utilisé par le service de paiement.

Cela se fait en indiquant les informations de stub dans la configuration de l`application du service de paiement. Les travaux devant être exécutés par le prestataire en vertu du présent contrat d`entreprise (les «services») sont énoncés dans les énoncés de travail du prestataire. Le prestataire exercera ses meilleurs efforts pour compléter les services de manière professionnelle et diligente, selon le calendrier et au prix indiqué dans chaque énoncé de travail. Le fournisseur doit fournir, à la seule dépense du prestataire, tous les équipements, outils, matériaux et/ou fournitures nécessaires, le cas échéant, pour effectuer les services. Si le client fournit des équipements, des outils et/ou des matériaux, il sera utilisé exclusivement pour les projets liés au client et il sera retourné à la fin des travaux décrits dans le présent contrat. Aucun sous-traitant ou consultant ne doit être engagé pour effectuer une quelconque partie des services sans l`autorisation écrite préalable du client. Le client aura le droit, à tout moment, de demander le remplacement immédiat du personnel du prestataire. La modélisation agile (AM) inclut la pratique de formaliser les modèles contractuels qui est directement liée à l`analyse du système hérité. L`idée de base est que lorsque vous découvrez que votre système nécessite l`accès à une ressource d`information, vous devez mettre un «modèle de contrat» (souvent appelé une spécification d`interface externe) en place entre votre groupe et celui externe. Des exemples de modèles de contrat incluent la documentation détaillée d`une interface de programmation d`application (API), une description de mise en page de fichier, une DTD XML ou un modèle de données physique décrivant une base de données partagée. Je les appelle des modèles de contrat parce qu`ils forment effectivement un contrat entre le propriétaire d`une ressource d`information et les propriétaires d`autres systèmes qui l`utilisent-le propriétaire ne peut pas changer le système sans au moins informer tout le monde à l`avance ou mieux encore négocier des changements avec eux.