2017-10-16 14 views
0

J'essaie de tester une requête PUT pour mettre à jour une entité de produit en supposant que le produit n'existe pas encore. Et donc je modélise la logique suivante dans mon test:Comment tester unitairement la méthode PUT correctement

  • Créer un produit. Le produit a une liste sous la forme d'un champ dont la taille est auto-incrémentée chaque fois que le produit est créé ou mis à jour. Donc je m'attends à ce que la taille soit égale à 1 juste après la création.
  • Effectuez une requête GET pour vérifier la taille. L'assertion assertTrue(response.getBody().getData().size() == 1); renvoie true comme prévu.
  • Ensuite, je veux modéliser une requête PUT et vérifier si le champ size du produit mis à jour a été incrémenté. L'affirmation serait donc que le champ de taille du produit mis à jour doit être supérieur à sa taille à partir de la demande de mise à jour précédente.

Mais je suis bloqué à ce stade et j'ai besoin d'un conseil sur la façon de procéder avec la demande PUT dans cette situation.

@RequestMapping(method = RequestMethod.PUT) 
     @ResponseStatus(HttpStatus.OK) 
     void updateProduct(@PathVariable("name") String productName); 

@Test 
     public void checkUpdated() { 

     Product newProduct = createProduct(SIMPLE_PRODUCT); 

     ResponseEntity<SimpleProduct> response = restTemplate.getForEntity("/products/{name}/?fields={fields}", 
        SimpleProduct.class, SIMPLE_PRODUCT); 
      assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); 
      assertTrue(response.getBody().getData().size() == 1); 
} 

Répondre

0

Puisque vous avez marqué cette question testng je vais supposer que vous faites dans TestNG.

  • Au sein de votre méthode createProduct(), la taille de récupérer la liste après la création et dans un persistent membre de données de niveau de classe.
  • Votre checkUpdated() dépend de createProduct() en utilisant l'attribut dependsOnMethod de votre annotation @Test.
  • Utilisez le membre de données de niveau classe pour votre assertion dans lequel vous comparez sa valeur à la liste après PUT et vérifiez si sa taille inférieure à celle de la liste après l'opération PUT.