Spring 3.2 Test, com.jajway 未作为依赖项包含在内

2022-09-01 12:46:56

我的测试失败,因为找不到异常

import com.jayway.jsonpath.InvalidPathException;

org.springframework.test.util.JsonPathExpectationsHelper;

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

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


答案 1

在我的情况下

有测试代码包含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>

答案 2

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