草庐IT

Hamcrest-Matcher

全部标签

java - Mockito、JUnit、Hamcrest、版本控制

默认情况下,Hamcrest所需的版本用于:JUnit4.11Hamcrest1.3Mockito-core1.9.5Hamcrest1.1Hamcrest1.1和1.3之间的API没有变化。目前我的测试用例尝试使用Hamcrest1.1运行JUnit4.11,但我合理surethatthisisabadidea.出于类似的原因,我怀疑尝试将Mockito-core1.9.5与Hamcrest1.3一起使用是alsoabadidea.怎么办?将Hamcrest1.1与最新的JUnit和Mockito结合使用将Hamcrest1.3与最新的JUnit和Mockito结合使用尝试修补Moc

java - 可靠的 Java 单元测试自动化? (JUnit/Hamcrest/...)

意图我正在寻找以下内容:可靠的单元测试方法我的方法中缺少什么?我做错了什么?我在做什么没必要?一种尽可能自动完成工作的方法当前环境Eclipse作为IDEJUnit作为测试框架,集成到Eclipse中Hamcrest作为“匹配器”库,以提高断言的可读性GoogleGuava用于前置条件验证目前的做法结构每个类一个测试类进行测试按静态嵌套类分组的方法测试测试方法命名以指定测试行为+预期结果Java指定的预期异常Annotation,不在方法名中方法论注意null值注意空List注意空String注意空数组注意由代码(后置条件)改变的对象状态不变量方法接受记录的参数类型边界检查(例如Int

java - 如何使用 Hamcrest 验证 map 大小

Map>mapMap=newHashMap>();目前这样断言assertThat(mapMap.size(),is(equalTo(1)));OrassertThat(mapMap.values(),hasSize(1));有没有其他方法,例如与列表一起使用的方法。assertThat(someListReferenceVariable,hasSize(1)); 最佳答案 好消息在当前masterbranchoftheJavaHamcrestproject中有一个匹配器可以完全满足您的需求。.你可以这样调用它:assertThat

java - 使用 junit @Rule、expectCause() 和 hamcrest 匹配器

我有一个测试:@RulepublicExpectedExceptionthrown=ExpectedException.none();...@TestpublicvoidtestMethod(){finalStringerror="errormessage";ThrowableexpectedCause=newIllegalStateException(error);thrown.expectCause(org.hamcrest.Matchers.equalTo(expectedCause));someServiceThatTrowsException.foo();}当通过mvn测试方

java - hamcrest hasItem 和 hasProperty,断言是否存在具有属性值的对象

importstaticorg.hamcrest.MatcherAssert.assertThat;importstaticorg.hamcrest.Matchers.hasItem;importstaticorg.hamcrest.Matchers.equalTo;assertThat(actual,hasItem(hasProperty("id",equalTo(1L))));其中actual是一个ID为Long的POJO。我明白了,ThemethodassertThat(T,Matcher)inthetypeMatcherAssertisnotapplicableforthear

java - 当没有调用 'matching' 方法时,Matcher 抛出 IllegalStateException 的理由

TL;DRMatcher背后的设计决策是什么?的API?背景Matcher有一种我没有预料到的行为,而且我找不到很好的理由。API文档说:Oncecreated,amatchercanbeusedtoperformthreedifferentkindsofmatchoperations:[...]Eachofthesemethodsreturnsabooleanindicatingsuccessorfailure.Moreinformationaboutasuccessfulmatchcanbeobtainedbyqueryingthestateofthematcher.API文档进一

java - Hamcrest - 使用什么版本? 1.3 或 2

我很困惑。目前我正在使用测试我的spring应用程序org.springframework.bootspring-boot-starter-testtest只要我想匹配正则表达式,我就很高兴。在hamcrest1.3中,您需要编写自己的匹配器,我不太喜欢它。我搜索并发现hamcrest2.0内置了一些东西,例如:assertThat(DateHelper.getActualDateForXML(),MatchesPattern.matchesPattern("\\d{4}+-\\d{2}-+\\d{2}+T\\d{2}+:\\d{2}+:\\d{2}+"));我很高兴,我补充说:org

java - 如何使用 Hamcrest 检查集合是否包含给定顺序的项目

如果给定的集合包含给定顺序的给定项目,如何使用Hamcrest检查?我试过hasItems但它只是忽略了顺序。Listlist=Arrays.asList("foo","bar","boo");assertThat(list,hasItems("foo","boo"));//Iwantthistofail,becausetheorderisdifferentthanin"list"assertThat(list,hasItems("boo","foo")); 最佳答案 您可以改用contains匹配器,但您可能需要使用最新版本的Ha

java - hamcrest 测试总是失败

我正在使用hamcrest1.3来测试我的代码。这简直就是一个死。我正在尝试对其进行测试以确保生成的数字小于13。我有一个打印语句打印生成的数字是什么。生成的数字始终小于13,但测试始终失败。是不是我做错了什么?这是我正在测试的代码。importjava.util.Random;publicclassDie{privateintnumSides;Randomrand;publicDie(intnumSides){this.numSides=numSides;rand=newRandom(System.currentTimeMillis());}publicintroll(){retur

java - 如何一起使用 JUnit 和 Hamcrest?

我不明白JUnit4.8应该如何与Hamcrest匹配器一起工作。junit-4.8.jar内部定义了一些匹配器在org.hamcrest.CoreMatchers中。同时,hamcrest-all-1.1.jar中还有一些other匹配器。在org.hamcrest.Matchers中。那么,去哪里呢?我是否应该在项目中明确包含hamcrestJAR并忽略JUnit提供的匹配器?特别是,我对empty()匹配器很感兴趣,但在这些jar中都找不到它。我需要别的东西吗?:)还有一个哲学问题:为什么JUnit将org.hamcrest包包含在自己的发行版中,而不是鼓励我们使用原始的hamc