Misturando Hamcrest e TestNG
Pergunta
Alguém integrado Hamcrest com TestNG para que seus matchers pode facilmente ser usado em afirmações TestNG?
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/
-
Pesquise 'java-hamcrest' o mais tardar, por agora é '2.0.0.0'
-
encontrar dependência para Gradle (no meu caso)
-
Adicionado compilação 'org.hamcrest: java-hamcrest: 2.0.0.0. Para build.gradle no meu projeto