2015-11-18 19 views
16

Sono abbastanza confuso. Attualmente sto testando la mia domanda molla conHamcrest: quale versione usare? 1.3 o 2

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-test</artifactId> 
    <scope>test</scope> 
</dependency> 

ero felice fino a quando ho voluto abbinare RegularExpressions. In hamcrest 1.3 è necessario scrivere il proprio matcher, cosa che non mi è piaciuta molto. Ho cercato e trovato che hamcrest 2.0 ha qualcosa a costruire in, come:

assertThat(DateHelper.getActualDateForXML(), MatchesPattern.matchesPattern("\\d{4}+-\\d{2}-+\\d{2}+T\\d{2}+:\\d{2}+:\\d{2}+")); 

ero felice, ho aggiunto:

<dependency> 
    <groupId>org.hamcrest</groupId> 
    <artifactId>hamcrest-junit</artifactId> 
    <version>2.0.0.0</version> 
    <scope>test</scope> 
</dependency> 

e preso a calci i 1,3 dipendenze hamcrest dalla primavera-boot-starter- test:

Ora tutto funziona ancora come mi aspetto che funzioni, ma non mi sento davvero a mio agio. Perché posso trovare persone che scrivono sulla 1.3 e non riescono a trovare l'uso di hamcrest-junit 2.0.

Qualcuno può spiegarmi la connessione tra loro? Perché sembra che hamcrest-JUnit 2.0 ha tutto costruito in da hamcrest 1.3 ...

Grazie Ben

+1

Non è possibile trovare documentazione sulla differenza tra 2.0 e 1.3 perché il progetto [non è stato gestito correttamente per diversi mesi] [1]. Se un committer attivo prende il sopravvento, lo sapremo tutti. Grazie a @CoronA. – heenenee

+0

Correlati: [Snippet su come configurare in modo efficace Junit con hamcrest] (http://acdcjunior.github.io/java-unit-tests-maven-dependencies-junit-hamcrest-mockito.html) – acdcjunior

risposta

24

Sulla base Hamcrest Github

e JUnit Lambda (Junit 5)

mio prendere su di esso

  • hamcrest-JUnit 2.0 (dovrebbe essere) è un nuovo inizio con anche l'obiettivo di separare hamcrest da JUnit
  • nel frattempo è iniziato il progetto Junit 5 che (vuole anche) ridurre/rimuovere terze parti dipendenze

=> In questa situazione, mi aspetto che sia prudente per i ragazzi di hamcrest attendere/coordinarsi con il progetto JUnit 5 prima di andare avanti in modo sostanziale.

Come ha detto @heenenee, i ragazzi di hamcrest si sono dati da fare con altre cose e quindi non sta succedendo molto con il progetto a questo punto.

Per rispondere

Qualcuno può spiegare la connessione tra di loro? Perché sembra che hamcrest-junit 2.0 abbia costruito tutto da hamcrest 1.3

  • hamcrest-JUnit 2.0 iniziato, ma i ragazzi dietro era molto affollato subito dopo (e sono tuttora) con altri progetti, per cui lo sviluppo si fermò
  • ci potrebbero essere anche alcune incertezze in merito JUnit 5 che può essere un incentivo a rinviare ulteriormente hamcrest-JUnit sviluppo 2.0 fino al rilascio JUnit 5 (speculazione)

... ma non mi sento davvero confortevole. Perché posso trovare persone che scrivono sulla 1.3 e non riescono a trovare l'uso di hamcrest-junit 2.0.

Al momento, diverso da quello per il tuo caso, non c'è molto incentivo per passare a hamcrest-junit 2.0. Una volta rilasciate le versioni di Junit 5, mi aspetto che ci sarà più incentivo ad andare avanti di nuovo.

1

Grande risposta per Ivo, che in realtà dovrebbe essere ottenere più voti, ma ecco alcune informazioni aggiuntive. Se controlli Maven per informazioni sulle dipendenze, Java Hamcrest 2.0.0.0 e Hamcrest JUnit 2.0.0.0, ci sono alcuni collegamenti usage. Nel momento in cui scrivo questo, sono rispettivamente 74 e 68 e non ci sono progetti importanti da una breve navigazione.

Problemi correlati