Pergunta

Alguém integrado Hamcrest com TestNG para que seus matchers pode facilmente ser usado em afirmações TestNG?

Foi útil?

Solução

Em suma, para responder à sua pergunta: Você não precisa de integrar TestNG com Hamcrest. Apenas org.hamcrest.MatcherAssert.assertThat(...) chamada diretamente que lança java.lang.AssertionError.

Fundo

Eu encontrei sua pergunta através do Google, perguntando exatamente o mesmo problema. Depois de mais Googling, eu não encontrou quaisquer respostas satisfatórias, então eu ler o código fonte para a integração do JUnit com Hamcrest.

Com a integração JUnit, Hamcrest é normalmente utilizado pelo telefone:

org.junit.Assert.assertThat(
    T actual,
    org.hamcrest.Matcher<? super T> matcher)

Quando eu li o código-fonte, descobri que apenas um pequeno wrapper para chamada:

org.hamcrest.MatcherAssert.assertThat(
    String reason,
    T actual,
    org.hamcest.Matcher<? super T> matcher)

Esta função lança java.lang.AssertionError.

Outras dicas

Se você está enfrentando problema com método vazio, então eu sugiro para adicionar hamcrest primeiro na lista de dependência. ou importar primeira hamcrest, ele vai resolver o problema.

Eu estava usando TestNJ com rexsl (internamente usando Hamcrest) e ele não consegue encontrar o método vazio. então eu adicionei rexsl primeiro na lista de dependência, se você estiver adicionando biblioteca no caminho de classe você pode tentar adicionar primeiro o Hamcrest.

espero que isso vai ajudar alguém como eu.

O que funcionou para mim: 1. http://search.maven.org/

  1. Pesquise 'java-hamcrest' o mais tardar, por agora é '2.0.0.0'

  2. encontrar dependência para Gradle (no meu caso)

  3. Adicionado compilação 'org.hamcrest: java-hamcrest: 2.0.0.0. Para build.gradle no meu projeto

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top