29

我的测试失败了,因为类未找到异常

import com.jayway.jsonpath.InvalidPathException;

之内

org.springframework.test.util.JsonPathExpectationsHelper;

手动将 jayway 依赖项添加到我的 maven pom 中删除了这个错误,我的测试按预期运行。

我是否发现了一个错误,或者我是否需要添加一个不同的弹簧罐以及弹簧测试?

4

3 回答 3

45

就我而言

拥有包含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>
于 2013-08-15T10:17:50.027 回答
14

Spring 中不包含外部依赖项(例如,JUnit、Mockito、Easy Mock、JayWay 等),因此有必要将它们(Ant/Maven/Ivy 依赖项或 jar 文件)显式添加到项目的类路径中。

于 2012-12-26T22:22:04.063 回答
2

添加此依赖项有效

<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

于 2014-01-19T07:49:30.460 回答