混合Hamcrest和TestNG(Mixing Hamcrest and TestNG)

2019-07-29 18:56发布

有没有人整合Hamcrest使用TestNG,使其匹配器可以很容易地在TestNG的断言被使用?

Answer 1:

总之,要回答你的问题:你不需要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



Answer 2:

如果您正在使用空方法面临的问题,那么我会建议加上hamcrest首先在依赖列表。 或导入第一hamcrest ,它会解决这个问题。

我是用TestNJ与rexsl(内部使用Hamcrest),它无法找到空的方法。 然后我在依赖列表首先添加rexsl,如果你是在类路径中添加库,你可以尝试先添加Hamcrest之一。

希望这将有助于我这样的人。



Answer 3:

什么工作对我来说:1. http://search.maven.org/

  1. 搜索“Java的hamcrest”最新作,现在是“2.0.0.0”

  2. 找到摇篮依赖(对我来说)

  3. 新增编译 'org.hamcrest:java的hamcrest:2.0.0.0' 在我的项目的build.gradle。



文章来源: Mixing Hamcrest and TestNG