【问题标题】:Mixing Hamcrest and TestNG混合 Hamcrest 和 TestNG
【发布时间】:2010-11-08 17:51:27
【问题描述】:

是否有人将 Hamcrest 与 TestNG 集成,以便可以轻松地在 TestNG 断言中使用其匹配器?

【问题讨论】:

    标签: java testng hamcrest


    【解决方案1】:

    如果您遇到空方法的问题,那么我建议在依赖列表中首先添加hamcrest。或者先导入hamcrest,就可以解决问题了。

    我正在使用带有 rexsl 的 TestNJ(内部使用 Hamcrest),但它找不到空方法。 然后我首先在依赖列表中添加了 rexsl,如果您在类路径中添加库,您可以尝试先添加 Hamcrest 。

    希望它能帮助像我这样的人。

    【讨论】:

      【解决方案2】:

      简而言之,回答您的问题:您不需要将 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

      【讨论】:

      【解决方案3】:

      什么对我有用: 1.http://search.maven.org/

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-26
        相关资源
        最近更新 更多