Ответ 1
Внешние зависимости (например, JUnit, Mockito, Easy Mock, JayWay и т.д.) не включены в Spring, поэтому их необходимо явно добавить (Ant/Maven/Ivy dependency или jar files) к пути к классу проекта.
Мои тесты не выполнялись из-за исключения класса, не найденного в
import com.jayway.jsonpath.InvalidPathException;
внутри
org.springframework.test.util.JsonPathExpectationsHelper;
Вручную добавив зависимость jayway к моему maven pom, удалила эту ошибку, и мой тест прошел, как ожидалось.
Я нашел ошибку или мне нужно добавить другую банку spring, а также spring test?
Внешние зависимости (например, JUnit, Mockito, Easy Mock, JayWay и т.д.) не включены в Spring, поэтому их необходимо явно добавить (Ant/Maven/Ivy dependency или jar files) к пути к классу проекта.
В моем случае
Имея тестовый код, в котором содержится jsonPath:
mockMvc.perform(get("/api/userDetails").header("Authorization", base64ForTestUser).accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andDo(print())
.andExpect(jsonPath("userName").value("testUser"));
Я получал
java.lang.NoClassDefFoundError: com/jayway/jsonpath/InvalidPathException
и
java.lang.ClassNotFoundException: com.jayway.jsonpath.InvalidPathException
Эта ошибка была непосредственно вызвана отсутствием таких зависимостей
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path-assert</artifactId>
<version>0.8.1</version>
<scope>test</scope>
</dependency>
Добавление этой зависимой работы
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path-assert</artifactId>
<version>0.8.1</version>
<scope>test</scope>
</dependency>
Если вы хотите использовать другую версию json-path-assert, вы можете просмотреть следующий репозиторий:
http://mvnrepository.com/artifact/com.jayway.jsonpath/json-path