Printemps 3.2 Test, com.jajway non inclus comme dépendance

Mes tests échouaient à cause d'une exception introuvable sur

import com.jayway.jsonpath.InvalidPathException;

Dans

org.springframework.test.util.JsonPathExpectationsHelper;

L'ajout manuel de la dépendance jayway à mon Maven pom a supprimé cette erreur et mon test a fonctionné comme prévu.

Ai-je trouvé un bug, ou dois-je ajouter un pot de printemps différent ainsi qu'un test de printemps ?

28
demandé sur NimChimpsky 2012-12-22 21:56:19

3 réponses

Dépendances externes (par exemple, JUnit, Mockito, Easy Mock, JayWay, etc.) ne sont pas inclus dans Spring, il est donc nécessaire de les ajouter explicitement (dépendance Ant/Maven/Ivy, ou fichiers jar) au classpath du projet.

14
répondu izilotti 2014-12-30 09:03:10

Dans mon cas,

Avoir le code de test contenu jsonpath Utilisation:

 mockMvc.perform(get("/api/userDetails").header("Authorization", base64ForTestUser).accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andDo(print())
                .andExpect(jsonPath("userName").value("testUser"));

Je recevais

java.lang.NoClassDefFoundError: com/jayway/jsonpath/InvalidPathException

Et

java.lang.ClassNotFoundException: com.jayway.jsonpath.InvalidPathException

Cette erreur a été directement causée par l'absence de telles dépendances

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path-assert</artifactId>
    <version>0.8.1</version>
    <scope>test</scope>
</dependency>
44
répondu pbaranski 2013-08-15 21:18:07

L'ajout de cette dépendance a fonctionné

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path-assert</artifactId>
    <version>0.8.1</version>
    <scope>test</scope>
</dependency>

Si vous souhaitez utiliser une autre version de JSON-path-assert, vous pouvez consulter le référentiel suivant:

Http://mvnrepository.com/artifact/com.jayway.jsonpath/json-path

2
répondu Harsh Gupta 2016-05-03 21:07:00