Test w Spocku mockowanie zwrotki z Optional

Odpowiedz Nowy wątek
2018-11-27 15:00
0

Hej, od jakiegoś czasu stosuję TDD.
Do tej pory używałem JUnit 4.
Postanowiłem przesiąśc się na Spocka i mam taki oto problem:

def "Jakiś tam test "() {
        given:
        ServicePlanModel model = Mock()
        model.isNoHandset() >> true
        servicePlanService.getServicePlanForCode(_) >> Optional.of(model)
        AddToCartData data = new AddToCartData()
        data.setOffer(OFFER_ID)
        data.setDevice(DEVICE_ID_ZZ)
        data.setGadgets(createGadgets())
        offers.add(data)

        when:
        testee.checkBeforeAddToCart(true, offers)

        then:
        def ex = thrown(AddProductToCartException)
        ex.message.contains('Cannot Add Gadget To no handset offer')

    }

Konkretnie chodzi mi o to, że w debugu widzę, że:

        ServicePlanModel model = Mock()
        model.isNoHandset() >> true
        servicePlanService.getServicePlanForCode(_) >> Optional.of(model)

Mock zwraca mi isNoHandset = false, mimo że ustawiam na true.
O co chodzi?
Wygląda, jakby tylko z Optionalami miał problem, bo w kilku innych testach gdzie zwracana jest wartość działa.

Pozdrawiam


Pozostało 580 znaków

2018-11-27 15:39
0

Pokaz jeszcze setupa/befora coś tam narzeźbił

Pozostało 580 znaków

2018-11-27 18:05
0

Hej Nie mam kodu pod ręka, ale w setup() ustawiam false dla tego wywołania.
Tylko że setup się odpala przed testem a potem test, więc czy nie powinno brać wartości z testu a nie setupu?


Pozostało 580 znaków

2018-11-27 18:12
0

To dlatego, że masz te mockowanie odpowiedzi w given, przesuń je do then

Pozostało 580 znaków

2018-11-28 07:08
0

Dziękuję. Zadziałało.
Ale dlaczego?
W innych testach mam mockowanie w given


edytowany 1x, ostatnio: Black007, 2018-11-28 09:29

Pozostało 580 znaków

2018-11-28 11:13
0

Tak po prostu jest według dokumentacji :p link

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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