Eksperymentuję z konwersją niektórych testów jednostkowych z używania JMocka do używania Mockito i trafiłem w kilka przeszkód.Mockito vs JMock
pierwsze w moich testów przy użyciu JMock weryfikację i powrocie z króćca zdarzyć w jednym kroku następująco
contextMockery.checking(new Expectations() {{
oneOf(dateUtilityService).isBeforeToday(URGENT_DATE);
will(returnValue(true));
}});
ten zasadniczo sprawdza, że metoda jest wywoływana i zwraca puszkach wartości w tym samym czasie. Test kończy się niepowodzeniem, jeśli NIE zostanie wywołana metoda isBeforeToday i zwróci wartość true dla mojej wartości w tym samym czasie. Natomiast podczas korzystania Mockito muszę sprawdzić, czy metoda jest wywoływana, a następnie powrót mojego puszkach wartość w oddzielnych etapach, które mają dość dużo duplikat następująco:
doReturn(true).when(dateUtilityService).isBeforeToday(URGENT_DATE);
verify(dateUtilityService).isBeforeToday(URGENT_DATE);
Czy nie ma sposobu, aby to zrobić w jednym kroku?
Po drugie, jeśli zapomnę wpisać wywołanie metody do jednej z moich prób w moich oczekiwaniach, JMock nie przejdzie testu z "Niespodziewanym wyjątkiem wywołania", co moim zdaniem jest poprawne, podczas gdy Mockito z radością przejdzie test, chyba że jednoznacznie zweryfikuję że wezwanie metody do makiety nigdy nie może się wydarzyć, czy to jest poprawne (wydaje się błędne)? Czy istnieje sposób, aby powiedzieć mockito, aby nie zdać testu, jeśli nieoczekiwane wywołania metod zostały wykonane na podstawie moich wyśmianych zależności?
Tak z ciekawości, czy też rozważyć przekształcenie testów JMockit? Składnia jest znacznie bliższa jMockowi: 'new Expectations() {{dateUtilityService.isBeforeToday (URGENT_DATE); result = true; }};;.. –