我很困惑。目前我正在使用
测试我的spring应用程序<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
只要我想匹配RegularExpressions,我就很开心。在hamcrest 1.3中你需要编写自己的匹配器,我不喜欢那么多。 我搜索并发现hamcrest 2.0内置了一些内容,如:
assertThat(DateHelper.getActualDateForXML(), MatchesPattern.matchesPattern("\\d{4}+-\\d{2}-+\\d{2}+T\\d{2}+:\\d{2}+:\\d{2}+"));
我很高兴,我补充道:
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-junit</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
并从spring-boot-starter-test中踢出了1.3个hamcrest依赖项:
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
</exclusion>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
现在一切都在按照我的预期工作,但我觉得不舒服。因为我可以找到人们写的关于1.3并且无法真正找到使用hamcrest-junit 2.0。
有人可以解释一下他们之间的联系吗?因为看起来hamcrest-junit 2.0的所有内容都来自hamcrest 1.3 ......
谢谢Ben
答案 0 :(得分:34)
基于Hamcrest Github
我对它的看法
=&GT;在这种情况下,我希望Hamcrest人员在大幅度前进之前等待/协调JUnit 5项目是明智的。
正如@heenenee所提到的那样,村民们忙于处理其他事情,所以现在这个项目并没有多少发生。
回答
有人可以解释一下他们之间的联系吗?因为看起来hamcrest-junit 2.0的所有内容都来自hamcrest 1.3
......但我感觉不舒服。因为我可以找到人们写的关于1.3并且无法真正找到使用hamcrest-junit 2.0。
此刻,除了你的情况,没有太大的动力转移到hamcrest-junit 2.0。一旦Junit 5发布,我预计会有更多的动力再次前进。
答案 1 :(得分:2)
Ivo给出了很好的答案,这真的应该得到更多的选票,但这里有一些补充信息。如果您检查Maven是否有关于依赖项的信息Java Hamcrest 2.0.0.0和Hamcrest JUnit 2.0.0.0,则会有一些usage链接。在我写这篇文章时,它分别是74和68,并且没有简短浏览的重大项目。
答案 2 :(得分:2)
Hamcrest项目只有released 2.1,并且在reworked the package structure之后thorough consideration。确保遵循upgrade procedure。 工件java-hamcrest 2.0.0.0现在被认为是failed attempt。