我一直在为我的 java 项目创建一个单元测试,即使我没有做出任何断言,我的测试也会一直失败。
阅读堆栈跟踪后,我注意到我正在使用的 retsIQ 库中的一个方法引发了一个断言错误。无论如何我可以忽略这个吗?我真的不想反编译和重新编译模块。
我还应该提到,如果它不作为测试运行,这个确切的代码可以正常工作。
这是我的测试图片:
这是它没有在测试中运行的图片:
我将假设两件事:1)您的项目是基于 Maven 的;2)这两个代码片段完全相同(assertTrue(true);
顺便说一句,除了那行什么都不做)。
也许您的问题是由于“运行”和“测试”配置具有不同的类路径这一事实引起的。您可能在测试类路径中有某些库的错误版本,甚至错过了某些库,最终导致此异常。
我建议您重新检查 pom.xml 中的所有测试范围的依赖项。您还可以使用Maven Dependency Plugin打印项目依赖关系树(但我不确定它是否可以单独打印测试依赖项):
mvn dependency:tree -Dverbose
或者,您可以转到 Intellij Idea 中的“项目结构”>“模块”>“依赖项”选项卡,并查看所有具有“测试”范围的条目。
从堆栈跟踪来看,解析响应时似乎发现了意外数据。诊断问题的最佳方法是在SearchCompactReader.parse()
(大约第 16 行)中设置断点,并在调试器中运行测试。
顺便说一句,您的测试不是单元测试。单元测试单独测试单个类或方法。您的测试似乎正在访问实时服务器。