Я очень смущен. В настоящее время я тестирую приложение 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...
Спасибо Бен