草庐IT

Hamcrest-Matcher

全部标签

java - 泛型 hell : hamcrest matcher as a method parameter

所以,让我们有一个字符串列表和一个接受Hamcrest匹配器并返回matches()的结果的函数。提供的匹配器的方法:publicbooleanmatchIt(finalMatcher>matcher){finalListlst=obtainListFromSomewhere();returnmatcher.matches(lst);}到目前为止一切顺利。现在我可以轻松调用:matchIt(empty());matchIt(anything());matchIt(hasItem("item"));matchIt(everyItem(equalToIgnoringCase("item")

java - 是否有 Hamcrest 匹配器来检查 Collection 既不为空也不为空?

是否有Hamcrest匹配器检查参数既不是空集合也不是null?我想我可以一直使用both(notNullValue()).and(not(hasSize(0))但我想知道是否有更简单的方法,但我错过了。 最佳答案 您可以结合IsCollectionWithSize和OrderingComparison匹配器:@Testpublicvoidtest()throwsException{Collectioncollection=...;assertThat(collection,hasSize(greaterThan(0)));}对于c

go - 为什么 language.Matcher 会返回如此奇怪的结果?

我正在实现一个基于Accept-Languageheader的多语言Web服务。我使用下一个代码来解析header并获取请求的语言:varmatcher=language.NewMatcher([]language.Tag{language.English,language.Russian,})header:="ru,RUS,ru-RU,ru-ru"tags,q,err:=language.ParseAcceptLanguage(header)forkey,tag:=rangetags{matched,_,c:=matcher.Match(tag)fmt.Printf("%s=>%fM

go - 为什么 language.Matcher 会返回如此奇怪的结果?

我正在实现一个基于Accept-Languageheader的多语言Web服务。我使用下一个代码来解析header并获取请求的语言:varmatcher=language.NewMatcher([]language.Tag{language.English,language.Russian,})header:="ru,RUS,ru-RU,ru-ru"tags,q,err:=language.ParseAcceptLanguage(header)forkey,tag:=rangetags{matched,_,c:=matcher.Match(tag)fmt.Printf("%s=>%fM

Android Gradle DexException : Multiple dex files define Lorg/hamcrest/Description

com.android.dex.DexException:多个dex文件定义Lorg/hamcrest/Description在尝试通过AndroidStudio或通过我的应用程序上的Gradle命令行进行调试构建/测试时发生。发布版本(没有测试)工作正常,但是一旦包含测试(hamcrest是一个测试库),构建就会失败并出现上述错误。我检查了我的模块依赖项,没有gradle-qdependencies证实的重复要求。项目设置.gradleinclude':[librarymodule]'include':[mainmodule]'项目build.gradlebuildscript{re

Android Gradle DexException : Multiple dex files define Lorg/hamcrest/Description

com.android.dex.DexException:多个dex文件定义Lorg/hamcrest/Description在尝试通过AndroidStudio或通过我的应用程序上的Gradle命令行进行调试构建/测试时发生。发布版本(没有测试)工作正常,但是一旦包含测试(hamcrest是一个测试库),构建就会失败并出现上述错误。我检查了我的模块依赖项,没有gradle-qdependencies证实的重复要求。项目设置.gradleinclude':[librarymodule]'include':[mainmodule]'项目build.gradlebuildscript{re

java - 为什么 hamcrest 说字节 0 不等于 int 0?

考虑以下使用标准JUnit断言和hamcrest的assertThat的测试用例:byteb=0;inti=0;assertEquals(b,i);//successassertThat(b,equalTo(i));//java.lang.AssertionError:Expected:but:wasif(b==i){fail();//testfails,sob==iistruefortheJVM}为什么会这样?对于JVM,这些值显然是相等的,因为b==i是true,那么为什么hamcrest会失败? 最佳答案 Assert#ass

java - 为什么 hamcrest 说字节 0 不等于 int 0?

考虑以下使用标准JUnit断言和hamcrest的assertThat的测试用例:byteb=0;inti=0;assertEquals(b,i);//successassertThat(b,equalTo(i));//java.lang.AssertionError:Expected:but:wasif(b==i){fail();//testfails,sob==iistruefortheJVM}为什么会这样?对于JVM,这些值显然是相等的,因为b==i是true,那么为什么hamcrest会失败? 最佳答案 Assert#ass

Java Hamcrest : Collection contains item of type

我想断言List包含TestAchievement类型的成员.这是我的断言:Listachievements;//PopulatedelsewhereassertThat(achievements,hasItem(isA(TestAchievement.class)));这个不编译,报错:ThemethodassertThat(T,Matcher)inthetypeAssertisnotapplicableforthearguments(List,Matcher>)使用Hamcrest进行此类断言的正确语法是什么? 最佳答案 感谢大

Java Hamcrest : Collection contains item of type

我想断言List包含TestAchievement类型的成员.这是我的断言:Listachievements;//PopulatedelsewhereassertThat(achievements,hasItem(isA(TestAchievement.class)));这个不编译,报错:ThemethodassertThat(T,Matcher)inthetypeAssertisnotapplicableforthearguments(List,Matcher>)使用Hamcrest进行此类断言的正确语法是什么? 最佳答案 感谢大