Testowanie metod zawierających wyrażenia lambda.

0

Witam. Napisałem test, w którym testuję metodę, która wewnątrz siebie korzysta z wyrażeń lambda, predykatów itp. Do testowania używam Junit 4.12.

    public List<NewObject> getObjectList(List<NewObject> newObjectList, DateTime time) {
        return newObjectList.stream().filter(activePredicate).filter(timePredicate).collect(Collectors.toList());
    }

Te predykaty inicializuję sobie wcześniej używając lamd. Niestety testy nigdy nie przechodzą. Gdy debuguję test debuger nie wchodzi wewnątrz wyrażenia lambda i chyba to jest przyczyną takiego stanu. Czy da się jakoś przetestować metody, w których użyłem lambd, predykatów itp? Czy JUnit tego po prostu nie obsługuje? Może jet jakaś inna biblioteka do testowania, która nie ma z tym problemu.

2

Niestety testy nigdy nie przechodzą

To znaczy że testy albo kod są błędne.

Gdy debuguję test debuger nie wchodzi wewnątrz wyrażenia lambda i chyba to jest przyczyną takiego stanu

Nie wchodzi bo nie może, ale nie ma to nic wspólnego z twoim popsutym testem.

Czy da się jakoś przetestować metody, w których użyłem lambd, predykatów itp?

Da się tak samo jak każdy inny kod.

Czy JUnit tego po prostu nie obsługuje? Może jet jakaś inna biblioteka do testowania, która nie ma z tym problemu.

Problem jest z twoim błędnym kodem / błędnym testem, biblioteki działają poprawnie.

To jest dość ciekawe jak ludzie szukają problemu wszędzie, tylko nie tam gdzie on się faktycznie znajduje...

Pokaż przykład tego kodu i testu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1