有没有人将 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/

  1. 搜索“java-hamcrest”,目前最新的是“2.0.0.0”

  2. 找到 Gradle 的依赖项(在我的例子中)

  3. 将编译'org.hamcrest:java-hamcrest:2.0.0.0'添加到我的项目中的build.gradle中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top