【问题标题】:Spring 3.2 Test, com.jajway not included as dependencySpring 3.2 测试,com.jajway 不作为依赖项包含在内
【发布时间】:2012-12-09 22:06:10
【问题描述】:

由于在

上找不到类异常,我的测试失败了

import com.jayway.jsonpath.InvalidPathException;

org.springframework.test.util.JsonPathExpectationsHelper;

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

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

【问题讨论】:

  • 您使用的是 Maven 2 还是 3?
  • 您能否使用 jayway maven 坐标和存储库详细信息更新答案。我也遇到了同样的异常,但是对于我给出的坐标,依赖项没有被下载

标签: java json spring spring-mvc


【解决方案1】:

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

【讨论】:

  • OP 声明他正在使用 Maven。通常 Maven 包括传递依赖,例如 JUnit。这种情况下的问题是它在 POM 中被标记为可选。您永远不需要手动将它们添加到类路径中。
【解决方案2】:

就我而言

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

【讨论】:

    【解决方案3】:

    添加此依赖项有效

    <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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 2018-08-03
      • 2011-10-23
      相关资源
      最近更新 更多