草庐IT

Hamcrest

全部标签

java - 如何断言字符串不为空

在junit中断言一个string不为空可以通过以下方式完成:assertTrue(!string.isEmpty());assertFalse(string.isEmpty());assertThat(string.toCharArray(),is(not(emptyArray()));//(althoughthisdidn'tcompile)我的问题是:有没有更好的检查方法-例如:assertThat(string,is(not(empty()))? 最佳答案 在hamcrest1.3中,您可以使用Matchers#isEmpt

java - 如何断言字符串不为空

在junit中断言一个string不为空可以通过以下方式完成:assertTrue(!string.isEmpty());assertFalse(string.isEmpty());assertThat(string.toCharArray(),is(not(emptyArray()));//(althoughthisdidn'tcompile)我的问题是:有没有更好的检查方法-例如:assertThat(string,is(not(empty()))? 最佳答案 在hamcrest1.3中,您可以使用Matchers#isEmpt

java - 断言可迭代的每个元素都匹配给定匹配器的惯用 Hamcrest 模式是什么?

检查以下代码段:assertThat(Arrays.asList("1x","2x","3x","4z"),not(hasItem(not(endsWith("x")))));这断言列表中没有不以“x”结尾的元素。当然,这是双重否定的说法,即列表的所有元素都以“x”结尾。另请注意,代码段会抛出:java.lang.AssertionError:Expected:notacollectioncontainingnotastringendingwith"x"got:这会列出整个列表,而不仅仅是不以“x”结尾的元素。那么有没有一种惯用的方式:断言每个元素都以“x”结尾(没有双重否定)在断言错

java - 断言可迭代的每个元素都匹配给定匹配器的惯用 Hamcrest 模式是什么?

检查以下代码段:assertThat(Arrays.asList("1x","2x","3x","4z"),not(hasItem(not(endsWith("x")))));这断言列表中没有不以“x”结尾的元素。当然,这是双重否定的说法,即列表的所有元素都以“x”结尾。另请注意,代码段会抛出:java.lang.AssertionError:Expected:notacollectioncontainingnotastringendingwith"x"got:这会列出整个列表,而不仅仅是不以“x”结尾的元素。那么有没有一种惯用的方式:断言每个元素都以“x”结尾(没有双重否定)在断言错

java - 为什么坚持接口(interface)的所有实现都扩展基类?

我只是在GitHub上查看JavaHamcrest代码,并注意到他们采用了一种看起来不直观且尴尬的策略,但这让我想知道我是否遗漏了什么。我注意到在HamCrestAPI中有一个接口(interface)Matcher和一个抽象类BaseMatcher。Matcher接口(interface)用这个javadoc声明了这个方法:/***ThismethodsimplyactsafriendlyremindernottoimplementMatcherdirectlyand*insteadextendBaseMatcher.It'seasytoignoreJavaDoc,butabitha

java - 为什么坚持接口(interface)的所有实现都扩展基类?

我只是在GitHub上查看JavaHamcrest代码,并注意到他们采用了一种看起来不直观且尴尬的策略,但这让我想知道我是否遗漏了什么。我注意到在HamCrestAPI中有一个接口(interface)Matcher和一个抽象类BaseMatcher。Matcher接口(interface)用这个javadoc声明了这个方法:/***ThismethodsimplyactsafriendlyremindernottoimplementMatcherdirectlyand*insteadextendBaseMatcher.It'seasytoignoreJavaDoc,butabitha

java - 混合 Hamcrest 和 TestNG

是否有人将Hamcrest与TestNG集成,以便可以轻松地在TestNG断言中使用其匹配器? 最佳答案 简而言之,回答您的问题:您不需要将TestNG与Hamcrest集成。直接调用org.hamcrest.MatcherAssert.assertThat(...)会抛出java.lang.AssertionError.背景我通过Google找到了您的问题,想知道完全相同的问题。在进一步谷歌搜索后,我没有找到任何令人满意的答案,所以我阅读了JUnit与Hamcrest集成的源代码。对于JUnit,Hamcrest集成通常通过调用来

java - 混合 Hamcrest 和 TestNG

是否有人将Hamcrest与TestNG集成,以便可以轻松地在TestNG断言中使用其匹配器? 最佳答案 简而言之,回答您的问题:您不需要将TestNG与Hamcrest集成。直接调用org.hamcrest.MatcherAssert.assertThat(...)会抛出java.lang.AssertionError.背景我通过Google找到了您的问题,想知道完全相同的问题。在进一步谷歌搜索后,我没有找到任何令人满意的答案,所以我阅读了JUnit与Hamcrest集成的源代码。对于JUnit,Hamcrest集成通常通过调用来

java - 当 JUnit 5 没有 assertThat() 函数时,如何将 Hamcrest 与 JUnit 5 一起使用?

要将Hamcrest与JUnit4一起使用,我们使用assertThat()函数。但是,JUnit5将不再具有assertThat()函数。如何在没有assertThat()的情况下使用Hamcrest? 最佳答案 您必须确保Hamcrest包含在类路径中,然后使用Hamcrest提供的assertThat()函数。从当前JUnit5UserGuide-WritingTestsAssertions,JUnitJupiter’sorg.junit.jupiter.Assertionsclassdoesnotprovideanasser

java - 当 JUnit 5 没有 assertThat() 函数时,如何将 Hamcrest 与 JUnit 5 一起使用?

要将Hamcrest与JUnit4一起使用,我们使用assertThat()函数。但是,JUnit5将不再具有assertThat()函数。如何在没有assertThat()的情况下使用Hamcrest? 最佳答案 您必须确保Hamcrest包含在类路径中,然后使用Hamcrest提供的assertThat()函数。从当前JUnit5UserGuide-WritingTestsAssertions,JUnitJupiter’sorg.junit.jupiter.Assertionsclassdoesnotprovideanasser