为啥 JUnit 的 assertTrue 没有得到解决?
Posted
技术标签:
【中文标题】为啥 JUnit 的 assertTrue 没有得到解决?【英文标题】:Why isn't JUnit's assertTrue being resolved?为什么 JUnit 的 assertTrue 没有得到解决? 【发布时间】:2016-02-10 18:49:58 【问题描述】:我有一个遵循标准 Maven 结构的项目:
项目 源 主要 java 测试 java在某些类中,assertTrue 可以被解析,而在其他类中则无法解析。
我从正在解析的类(在 src/java/test 目录中)获取静态导入,并将其粘贴到无法解析 assertTrue 的类中(在 src/java/main 目录中)并且没有解决它。
所以使用import static org.junit.Assert.assertTrue;
是行不通的。
使用Assert.assertTrue
也不起作用。
编辑:
我在最初的帖子中没有明确说明的一件事是,这不是一个带有单元测试的标准 Java 项目。该项目是另一个 Java 程序的集成测试框架。因此,该项目中的所有代码都用于使用外部 REST API 测试另一个程序的功能。因此,为什么我在测试文件夹之外有一个 Junit 断言。当然,可能仍有机会清理它。
【问题讨论】:
我没有投反对票。但是最好不要让 main 下的代码依赖于 JUnit,并找到一种不同的方式来实现您的断言,无论是使用语言关键字还是您自己的实用程序。 这是有道理的。我可能会修改代码的特定部分。我提出这个的主要目的是记录如何指定依赖项可能会影响范围。我看到的关于 assertTrue 没有解决的所有其他问题只提到了静态导入。这对我来说还不够。 【参考方案1】:所以问题出在我的build.gradle
文件中,我将junit 依赖项指定为testCompile
依赖项。这意味着它只适用于 src/test 目录中的类。因此,为了解决我的问题,我将 build.gradle 更改为使用 compile('junit:junit:4.12')
。
我也可以将无法解析的文件移动到 src/test 目录中,但该文件在逻辑上不属于那里。
【讨论】:
以上是关于为啥 JUnit 的 assertTrue 没有得到解决?的主要内容,如果未能解决你的问题,请参考以下文章