2017-04-07 30 views

Odpowiedz

12

Musisz upewnić się, że Hamcrest jest zawarty w ścieżce klas, a następnie użyć funkcji assertThat() dostarczonej przez Hamcrest. Z obecnego JUnit 5 User Guide - Writing Tests Assertions, org.junit.jupiter.Assertions klasy

jUnit Jupiter nie przewiduje metodę assertThat() jak ten znaleziony w jUnit 4'S org.junit.Assert klasy, które przyjmuje Hamcrest Matcher. Zamiast tego programiści są zachęcani do korzystania z wbudowanej obsługi dopasowań dostarczanych przez niezależnych bibliotek asercji.

Poniższy przykład ilustruje sposób użycia funkcji assertThat() firmy Hamcrest w teście JUnit Jupiter. Tak długo, jak biblioteka Hamcrest została dodana do ścieżki klasy, możesz statycznie importować metody , takie jak assertThat(), is(), i equalTo(), a następnie używać ich w testach jak w poniższej metodzie assertWithHamcrestMatcher().

import static org.hamcrest.CoreMatchers.equalTo; 
import static org.hamcrest.CoreMatchers.is; 
import static org.hamcrest.MatcherAssert.assertThat; 

import org.junit.jupiter.api.Test; 

class HamcrestAssertionDemo { 

    @Test 
    void assertWithHamcrestMatcher() { 
     assertThat(2 + 1, is(equalTo(3))); 
    } 

} 

Oczywiście starsze testy oparte na modelu JUnit 4 Programowanie może dalej korzystać org.junit.Assert # assertThat „.

+2

Co dmucha mój umysł,' assertThat' było powinien to być nowy sposób wykonywania wszystkich twierdzeń, a następnie nagle JUnit 5 wychodzi i jakoś ma wszystkie dotychczasowe metody potwierdzania, ale także usunął jedyną nowoczesną metodę, która była już zdecydowana złamać API, więc " myślę, że mogliby naprawdę tam pojechać i usunąć wszystkie zbędne metody asercji tycznie pomyślałem, że może to dla wygody migracji, ale nie, kolejność parametrów nie jest nawet taka sama. – Trejkaz