Qualcuno ha integrato Hamcrest con TestNG in modo che i suoi corrispondenti possano essere facilmente utilizzati nelle asserzioni di TestNG?Miscelazione di Hamcrest e TestNG
risposta
In breve, per rispondere alla tua domanda: Non è necessario integrare TestNG con Hamcrest. Basta chiamare lo org.hamcrest.MatcherAssert.assertThat(...)
direttamente che genera java.lang.AssertionError
.
Sfondo
Ho trovato la tua domanda tramite Google, chiedendosi esattamente lo stesso problema. Dopo ulteriori ricerche su Google, non ho trovato risposte soddisfacenti, quindi ho letto il codice sorgente per l'integrazione di JUnit con Hamcrest.
Con JUnit, l'integrazione Hamcrest viene normalmente utilizzato chiamando:
org.junit.Assert.assertThat(
T actual,
org.hamcrest.Matcher<? super T> matcher)
Quando ho letto il codice sorgente, l'ho scoperto solo un piccolo involucro di chiamare:
org.hamcrest.MatcherAssert.assertThat(
String reason,
T actual,
org.hamcest.Matcher<? super T> matcher)
Questa funzione tiri java.lang.AssertionError
.
Se si riscontrano problemi con il metodo vuoto, suggerirei di aggiungere prima hamcrest
nell'elenco delle dipendenze. o importare prima hamcrest
, risolverà il problema.
Stavo usando TestNJ con rexsl (utilizzando internamente Hamcrest) e non riesce a trovare il metodo vuoto. poi ho aggiunto rexsl al primo nella lista delle dipendenze, se si aggiunge una libreria nel percorso della classe si può provare ad aggiungere prima quella di Hamcrest.
spero che possa aiutare qualcuno come me.
Quello che ha funzionato per me: 1. http://search.maven.org/
Cerca 'java-hamcrest' più tardi a partire per ora è '2.0.0.0'
trova dipendenza per Gradle (nel mio caso)
Aggiunto 'org.hamcrest: java-hamcrest: 2.0.0.0' a build.gradle nel mio progetto.
- 1. Hamcrest e ScalaTest
- 2. junit e hamcrest dichiarazione
- 3. TestNG e Spring 3
- 4. Differenza tra Matchers hamcrest-biblioteca e CoreMatchers hamcrest-core
- 5. miscelazione MarshalByRefObject e Serializable
- 6. Abuso di hasItems hamcrest
- 7. Test di parallelismo con IntelliJ e TestNG
- 8. servizio e Project miscelazione Referenze
- 9. Miscelazione tag JSF e HTML
- 10. miscelazione galleggiante e posizionamento fisso
- 11. Miscelazione Typeahead.js e Bootstrap 3
- 12. Miscelazione di librerie statiche e librerie condivise
- 13. Miscelazione di C e C++ con CMAKE
- 14. Miscelazione di viste Android e GLSurfaceView
- 15. miscelazione pulsanti di opzione e text_field
- 16. Miscelazione di file C e Assembly
- 17. Swift - miscelazione di metodi astratti e concreti
- 18. Miscelazione di iOS UIKit e Cocos2d
- 19. Miscelazione di immagini e video utilizzando AVFoundation
- 20. Differenza tra BeforeClass e BeforeTest in TestNG
- 21. Modalità di miscelazione Android
- 22. Uguaglianza mappa con Hamcrest
- 23. Biblioteca Hamcrest per data
- 24. In che modo gli hasItem di Hamcrest contengono e contieneInAnyOrder?
- 25. Dataflow miscelazione Integer e tipi lunghi
- 26. miscelazione obiettivo-c e rapido quando sottoclasse
- 27. miscelazione eccellenti e classici chiamate in Python
- 28. miscelazione per cento e fisso CSS
- 29. NHibernate fluente: miscelazione Automapping e mappatura manuale
- 30. Xamarin.forms miscelazione ContentPage e Android attività
Questo è ottimo, tranne che _TestNG_ ha [asserzioni morbide] (http://static.javadoc.io/org.testng/testng/6.8.21/org/testng/asserts/SoftAssert.html) che può essere usato da _Hamcrest_. – Bass