2016-06-08 3 views
6

Я ищу Hamcrest Matcher для модульных методов тестирования, которые возвращают java.util.Optional type. Что-то вроде:Есть ли какой-либо Hamcrest Matcher для java.util.Optional?

@Test 
    public void get__Null(){ 

     Optional<Element> element = Element.get(null);  
     assertThat(sasi , isEmptyOptional()); 
    } 

    @Test 
    public void get__GetCode(){ 

     Optional<Element> element = Element.get(MI_CODE);  
     assertThat(sasi , isOptionalThatMatches(allOf(hasproperty("code", MI_CODE), 
                 hasProperty("id", notNullValue()))); 
    } 

Есть ли какая-либо реализация, доступная бросить репозиторий Maven?

+0

Почему вы не просто использовать 'equalTo (...)'? –

+0

Есть и другие способы тестирования объекта. Но в некоторых случаях помощник облегчит нам жизнь. Например, утверждать, что у одного объекта есть компонент с дополнительным свойством со значением, когда вы хотите только проверить некоторые поля. Или, если у равных есть особая реализация. – borjab

+0

Я плохо знаю ваш случай, но, возможно, эта библиотека может вам помочь: https://github.com/shazam/shazamcrest –

ответ

5

В настоящее время Java Hamcrest использует версию 1.6 и интегрирован со многими проектами, использующими более старую версию Java.

Таким образом, функции, связанные с Java 8, будут добавлены в будущих версиях, совместимых с Java 8. Предлагаемое решение состояло в том, чтобы иметь библиотеку расширений, которая ее поддерживает, чтобы любой, кто нуждается, мог использовать библиотеку расширений.

Я являюсь автором Hamcrest Optional, и теперь он доступен на центральном Maven.

Пример: Проверяется Дополнительно содержит строку, начиная с некоторого значения

import static com.github.npathai.hamcrestopt.OptionalMatchers.hasValue; 
import static org.hamcrest.Matchers.startsWith; 

Optional<String> optional = Optional.of("dummy value"); 
assertThat(optional, hasValue(startsWith("dummy"))); 
2

На данный момент у меня есть следующая информация:

  • Существует issue и feature предложения поддержать его Кета Ja 8 типов на Hamcrest сайте.
  • Один пользователь создал один и разместил на своем GitHub в качестве примера. Все еще не на Maven, но работая над этим.