题
有没有人将 Hamcrest 与 TestNG 集成,以便其匹配器可以轻松地在 TestNG 断言中使用?
解决方案
总之,要回答你的问题:你不需要TestNG和Hamcrest整合。只是org.hamcrest.MatcherAssert.assertThat(...)
直接调用其抛出java.lang.AssertionError
。
<强>背景强>
我通过谷歌找到你的问题,不知道一模一样的问题。进一步谷歌搜索后,我没有找到任何令人满意的答案,所以我读的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
,它会解决这个问题。
我使用TestNJ与rexsl(内部使用Hamcrest)和它未能找到空的方法。 然后我在依赖列表首先添加rexsl,如果你是在类路径中添加库,你可以尝试先添加Hamcrest之一。
希望这将有助于我这样的人。
对我有用的:1. http://search.maven.org/
搜索“java-hamcrest”,目前最新的是“2.0.0.0”
找到 Gradle 的依赖项(在我的例子中)
将编译'org.hamcrest:java-hamcrest:2.0.0.0'添加到我的项目中的build.gradle中。
不隶属于 StackOverflow