Hamcrest – 使用什么版本? 1.3或2
我很困惑。 目前我正在测试我的弹簧应用程序
org.springframework.boot spring-boot-starter-test test
只要我想匹配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}+"));
我很高兴,我补充说:
org.hamcrest hamcrest-junit 2.0.0.0 test
并从spring-boot-starter-test中踢出了1.3个hamcrest依赖项:
org.hamcrest hamcrest-library org.hamcrest hamcrest-core
现在一切都在按照我的预期工作,但我觉得不舒服。 因为我可以找到人们写的关于1.3并且无法真正找到使用hamcrest-junit 2.0的人。
有人可以解释一下他们之间的联系吗? 因为似乎hamcrest-junit 2.0的所有内容都来自hamcrest 1.3 …
谢谢本
基于Hamcrest Github
- Hamcrest Github CHANGES.txt
- 解耦Hamcrest和JUnit的演变
- 这还在维持吗?
和JUnit Lambda(Junit 5)
- 最小化依赖性(尤其是第三方)
我接受它
- hamcrest-junit 2.0(应该是)一个新的开始,也是将hamcrest与junit分离的目标
- 与此同时,Junit 5项目启动了(也希望)减少/删除第三方依赖项
=>在这种情况下,我希望Hamcrest人员在向前推进之前等待/协调JUnit 5项目是谨慎的。
正如@heenenee所提到的那样,这些家伙忙于处理其他事情,所以此时项目并没有多少。
回答
有人可以解释一下他们之间的联系吗? 因为看起来hamcrest-junit 2.0的所有内容都来自hamcrest 1.3
- hamcrest-junit 2.0已经开始,但其后面的人很快就忙着(现在还有)其他项目,所以开发停止了
- 关于JUnit 5可能还存在一些不确定因素,这可能会促使将hamcrest-junit 2.0的进一步推迟到JUnit 5的发布(推测)
……但我感觉不舒服。 因为我可以找到人们写的关于1.3并且无法真正找到使用hamcrest-junit 2.0的人。
目前,除了你的情况,没有太大的动力转移到hamcrest-junit 2.0。 一旦Junit 5发布,我预计会有更多的动力再次前进。
伊沃的很好的答案,这应该是获得更多的选票,但这里有一些补充信息。 如果您检查Maven有关依赖项的信息, Java Hamcrest 2.0.0.0和Hamcrest JUnit 2.0.0.0 ,则有一些使用链接。 在我写这篇文章时,它分别是74和68,并且没有简短浏览的重大项目。