J'ai écrit un contrat et le plugin a généré des tests autogénérés. Je vois un comportement très étrange avec ces tests autogénérés.Le point de terminaison du service avec la variable path provoque 404 avec le contrat cloud
Après est mon point de terminaison de service:
@RequestMapping(value="/check/{id}" method= RequestMethod.GET, produces = Media.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Application>> getApplications(
@PathVariable (value = "id") String id){
return appService.findAll(id);
}
Et voici le contrat:
Contract.make {
request {
method GET()
url '/check/1234567'
}
response {
status 200
body("""
{
.........
}
""")
headers {
contentType(applicationJson())
}
}
}
Comme je lance des tests "installer mvn clean" sont générés automatiquement et exécuter. Cela fonctionne bien avec le contrat ci-dessus et passe les tests parfaitement. Cependant, si je change les données dans le chemin vers "/ check/12345678", il commence à échouer. La chose que je ne suis pas en mesure de comprendre est que mon point de terminaison prend un chemin de type "id" qui est un type de chaîne. Pour ce type de chemin, toute valeur devrait être bonne. Cependant, les chemins suivants fonctionnent:
url '/check/1234567'
url '/check/12'
url '/check/12347'
Et suivant ne fonctionne pas:
url '/check/12345678' //added just one more digit
url '/check/aa4567' //prepended characters
url '/check/123aa' //appended characters
Il Si je peux obtenir une explication sur ce problème, ou comment le résoudre. Pratiquement n'importe quelle chaîne devrait fonctionner. Par exemple "/check/234df-dfs-fs234fds-sdf-fssd3rr"
J'ai essayé modèle également, il donne le même résultat « attendu: <200> mais était: <404> '' url $ (consommateur ('/ check/^ [a-z0-9] + $'), producteur ('/ check/12345678')) ' – Yogi
Vous avez corrigé. Il n'y avait rien de mal avec les modèles, il frappait les services et essayait de trouver des données basées sur les implémentations. En cas d'absence de données, la mise en œuvre était lancée 404. Elle travaillait pour certaines urls car les données étaient disponibles pour ces identifiants. Je l'ai réparé en me moquant des services. – Yogi