问题描述
我很困惑.目前,我正在使用
I am quite confused. Currently I am testing my spring application using
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
我很高兴,只要我想匹配RegularExpressions.在hamcrest 1.3中,您需要编写自己的匹配器,我不太喜欢.我搜索发现hamcrest 2.0内置了一些东西,例如:
I was happy as long as I wanted to match RegularExpressions. In hamcrest 1.3 you need to write your own matcher, which I did not like that much.I searched and found that hamcrest 2.0 has something build in, like:
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依赖项:
And kicked out the 1.3 hamcrest dependencies from spring-boot-starter-test:
<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的使用.
Now everything is still working as I expect it to work, but I do not feel really comfortable. Because I can just find people writing about 1.3 and can not really find the use of hamcrest-junit 2.0.
有人可以向我解释他们之间的联系吗?因为似乎hamcrest-junit 2.0具有hamcrest 1.3的所有功能...
Can somebody explain me the connection between them? Because it seems that hamcrest-junit 2.0 has everything build in from hamcrest 1.3...
感谢Ben
推荐答案
基于Hamcrest Github
Based on Hamcrest Github
- Hamcrest Github CHANGES.md
- Decouple the evolution of Hamcrest and JUnit
- Is this still being maintained?
- 最小化依赖关系(尤其是第三方)
我要接受它
My take on it
- hamcrest-junit 2.0(应该是)是一个崭新的开始,其目标也是将hamcrest与junit脱钩
- 与此同时,启动了Junit 5项目,该项目减少/消除了第三方依赖性
=>在这种情况下,我希望谨慎的人在继续前进之前,等待/协调JUnit 5项目.
=> In this situation, I expect it is prudent for the hamcrest guys to wait for / coordinate with the JUnit 5 project before moving forward substantially.
正如@heenenee提到的那样,那些令人难以置信的家伙开始忙于其他事情,因此目前该项目并没有发生什么事.
As @heenenee mentioned, the hamcrest guys became busy with other stuff and so not much is happening with the project at this point.
要回答
To answer
- hamcrest-junit 2.0开始了,但是它背后的人在(并且仍然)在其他项目之后很快就忙了起来,所以开发停止了
- 关于JUnit 5可能还存在一些不确定性,这可能是促使进一步推迟hamcrest-junit 2.0开发直到JUnit 5发行(推测)的诱因
目前,除了您的情况以外,没有太多动机转向hamcrest-junit 2.0. Junit 5发布后,我希望将会有更多的动力来继续前进.
At the moment, other than for your case there is not much incentive to move to hamcrest-junit 2.0. Once Junit 5 releases I expect that there will be more incentive to move forward again.
这篇关于Hamcrest-使用哪个版本? 1.3或2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!