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