我在Java中使用JUnit作为我的TDD,并注意到有两个组件可以从JUnit.org下载.首先,我认为我需要JUnit组件并下载,安装.当我编译并尝试运行我的测试时,它抱怨没有找到Hamcrest类.所以我不得不从他们的主页再次下载这个.
因此,出于好奇,为什么我们需要从一开始就为一个目的使用两次下载?有谁知道为什么hamcrest核心与JUnit是分开的,即使它被JUnit使用?
谢谢,
Javabug
解决方法:
JUnit使用Hamcrest.在过去,JUnit嵌入了导致问题的Hamcrest类,因为项目在不同的周期中不断发展.在最近的JUnit版本中(如果我没错,从4.11开始)这已经改变了,并且没有嵌入Hamcrest.因此,如果将JUnit作为依赖项添加到项目中(Maven,Gradle等),您将隐式获得对Hamcrest的依赖.
我相信Hamcrest的这个问题在某种程度上与分裂有关. https://github.com/hamcrest/JavaHamcrest/issues/92