混合Hamcrest和TestNG
有没有人将Hamcrest与TestNG集成在一起,以便它的匹配器可以很容易地用于TestNG断言?
简而言之,回答你的问题:你不需要将TestNG与Hamcrest集成。 只需调用org.hamcrest.MatcherAssert.assertThat(...)
直接抛出java.lang.AssertionError
。
背景
我通过Google找到了您的问题,想知道完全相同的问题。 经过进一步的谷歌搜索,我没有找到任何令人满意的答案,所以我阅读了JUnit与Hamcrest集成的源代码。
使用JUnit,Hamcrest集成通常用于调用:
org.junit.Assert.assertThat( T actual, org.hamcrest.Matcher super T> matcher)
当我阅读源代码时,我发现它只是一个小的包装器来调用:
org.hamcrest.MatcherAssert.assertThat( String reason, T actual, org.hamcest.Matcher super T> matcher)
此函数抛出java.lang.AssertionError
。
如果你遇到空方法问题,那么我建议先在依赖列表中添加hamcrest
。 或者导入第一个hamcrest
,它将解决问题。
我正在使用带有rexsl的TestNJ(内部使用Hamcrest),但它找不到空方法。 然后我在依赖列表中首先添加了rexsl,如果你在类路径中添加库,你可以尝试首先添加Hamcrest。
希望它会帮助像我这样的人。
什么对我有用: 1。http : //search.maven.org/
-
搜索’java-hamcrest’,最新版本为’2.0.0.0′
-
找到Gradle的依赖(在我的例子中)
-
在我的项目中为build.gradle添加了编译’org.hamcrest:java-hamcrest:2.0.0.0’。