【问题标题】:XML to JSON with org.json fails in JUnit test. NoSuchMethodError for JSONObject使用 org.json 的 XML 到 JSON 在 JUnit 测试中失败。 JSONObject 的 NoSuchMethodError
【发布时间】:2017-05-22 05:38:57
【问题描述】:

我有一个 Spring Boot 项目,我使用 org.json 将 XML 映射到 JSON。这在测试环境之外工作得很好,但是当我尝试进行单元测试时,我在 JSONObject 的第一个方法调用上得到 NoSuchMethodError。查看 SO 的其他答案,默认情况下 JSONObject 似乎不可用于单元测试或类似的东西。

如何使用 org.json 和 JSONObject 对类进行单元测试?

【问题讨论】:

  • 错误信息表明,编译运行使用了不同版本的库。
  • @Henry 是的,我实际上可以看到该项目在依赖项中有 2 个不同版本的 org.json。但是如何指定在运行测试时使用哪个版本?
  • 确保类路径中只有一个版本。
  • @Henry 当我将我选择使用的版本更改为另一个依赖项拖到项目中的版本时,这确实有效。唯一的问题是我必须使用旧版本的 org.json,它没有我在新版本中使用的方法,因此再次失败。
  • 实际上,除了修复代码以使其仅适用于一个版本之外,您无能为力。

标签: java junit org.json


【解决方案1】:

该类可用,但版本不同,因此缺少其他库所需的一些方法。

在根 pom.xml 中使用 <dependencyManagement> 来指定要在整个项目中使用的 lib 版本。然后您可以删除子模块中的版本,因为默认值将取自 <dependencyManagement>

【讨论】:

    猜你喜欢
    • 2012-05-27
    • 2016-08-14
    • 2015-04-27
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多