Hamcrest - какую версию использовать? 1,3 или 2
Я очень смущен. В настоящее время я тестирую приложение spring, используя
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
Я был доволен тем, что хотел сопоставить RegularExpressions. В hamcrest 1.3 вам нужно написать свой собственный матчи, который мне не понравился.
Я искал и обнаружил, что у hamcrest 2.0 есть что-то встроенное, например:
assertThat(DateHelper.getActualDateForXML(), MatchesPattern.matchesPattern("\\d{4}+-\\d{2}-+\\d{2}+T\\d{2}+:\\d{2}+:\\d{2}+"));
Я был счастлив, я добавил:
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-junit</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
И выгнал 1,3 зависимостей от hampcrest от spring -boot-starter-test:
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
</exclusion>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
Теперь все работает, так как я ожидаю, что это сработает, но мне не очень удобно. Потому что я могу просто найти людей, пишущих о 1.3, и не может действительно найти использование hamcrest-junit 2.0.
Может кто-нибудь объяснить мне связь между ними? Потому что кажется, что hamcrest-junit 2.0 имеет все, что встроено в hamcrest 1.3...
Спасибо Бен
Ответы
Ответ 1
По мотивам Хамкрест Гитхуб
и Юнит Лямбда (5 июня)
Мой взгляд на это
- Hamcrest-Junit 2.0 (должно быть) - это новый старт, а также цель отделить Hamcrest от Junit
- тем временем запущен проект Junit 5, который уменьшает/удаляет сторонние зависимости
=> В этой ситуации, я ожидаю, что ребятам из подколенного сухожилия будет разумно подождать/скоординировать с проектом JUnit 5, прежде чем двигаться дальше.
Как упомянул @heenenee, ребята из Hamcrest стали заняты другими делами, и на данный момент с проектом мало что происходит.
Отвечать
Может кто-нибудь объяснить мне связь между ними? Потому что кажется, что в Hamcrest-Junit 2.0 все встроено из Hamcrest 1.3
- Hamcrest-junit 2.0 был запущен, но ребята, стоящие за ним, вскоре занялись (и продолжают заниматься) другими проектами, поэтому разработка остановилась
- могут также быть некоторые неопределенности относительно JUnit 5, что может быть стимулом отложить дальнейшую разработку Hamcrest-junit 2.0 до выпуска JUnit 5 (предположение)
... но я не чувствую себя действительно комфортно. Потому что я могу просто найти людей, пишущих о 1.3, и не могу найти применение hamcrest-junit 2.0.
На данный момент, кроме вашего случая, нет особого стимула для перехода на Hamcrest-Junit 2.0. После выхода Junit 5 я ожидаю, что будет больше стимулов для дальнейшего продвижения вперед.
Ответ 2
Отличный ответ Ivo, который действительно должен получать больше голосов, но здесь есть дополнительная информация. Если вы проверите Maven для получения информации о зависимостях, Java Hamcrest 2.0.0.0 и Hamcrest JUnit 2.0.0.0, есть ссылки usage. В то время я пишу это, это 74 и 68 соответственно, и никаких крупных проектов из краткого обзора.
Ответ 3
Проект Hamcrest только что выпустил 2.1, и они тщательно переработали структуру пакета. Обязательно следуйте процедуре обновления. Артефакт java-hamcrest 2.0.0.0 теперь считается неудачной попыткой.