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 ?
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.
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>
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