Śledztwo, które szyderczy ramy używać dla mojego projektu i mają zawężony go JMockit i Mockito .
Zauważyłem, że Mockito został wybrany „ najlepszym makietowym frameworkiem dla Javy ” w Stackoverflow.
Porównując funkcje na JMockit „s« Mocking Narzędzie Porównanie Matrix »wydaje się, że JMockit ma wiele różnych funkcji.
Czy ktoś ma jakieś konkretne informacje (nie opinie) na temat tego, co potrafi Mockito , czego nie da się osiągnąć z JMockitem i odwrotnie?
Odpowiedzi:
Aktualizacja wrzesień 2019: Jedyną platformą do mockowania obsługiwaną (domyślnie) przez Spring Boot jest Mockito . Jeśli używasz Springa, odpowiedź jest dość oczywista.
Powiedziałbym, że jest konkurencja pomiędzy JMockit i PowerMock , potem Mockito .
Zostawiłbym „zwykły” jMock i EasyMock, ponieważ używają tylko proxy i CGLIB i nie używają instrumentacji Java 5 jak nowsze frameworki.
jMock również nie miał stabilnej wersji przez ponad 4 lata. jMock 2.6.0 potrzebował 2 lat, aby przejść z RC1 do RC2, a następnie kolejne 2 lata, zanim faktycznie został wydany.
Odnośnie proxy i CGLIB a instrumentacja:
Powyższe jest skopiowane z http://jmockit.org/about.html . Ponadto porównuje między sobą (JMockit), PowerMock i Mockito na kilka sposobów:
(oczywiście, źródło może być stronnicze, ale cóż ...)
Powiedziałbym, że idź z JMockit . Jest najłatwiejszy w użyciu, elastyczny i działa w prawie wszystkich przypadkach, nawet trudnych i scenariuszach, w których nie możesz kontrolować klasy do przetestowania (lub nie możesz jej złamać z powodu kompatybilności itp.).
Moje doświadczenia z JMockit są bardzo pozytywne.
źródło
-javaagent
flagi od wersji 1.42, ponieważ nie można już dołączyć samodzielnie, ponieważ Java 9 i znajdowanie odpowiednich obejść oczywiście nie było w zakresie programisty. Inną kwestią jest to, że JMockit nie pozwala już na mockowanie prywatnych metod i konstruktorów, podczas gdy PowerMock robi to afaik.Pracowałem zarówno z Mockito, jak i JMockit, a moje doświadczenie z nimi to:
Mockito:
EasyMock:
JMockit:
Poza tym inne zalety JMockit:
Osobiście wolę JMockit, który moim zdaniem jest bardziej bogaty w funkcje i elastyczny, ale wymaga nieco bardziej stromej krzywej uczenia się. Zwykle istnieje wiele sposobów na osiągnięcie tego samego efektu kpiny i wymaga większej ostrożności podczas projektowania makiet.
źródło
Używam jMockita tylko ze względu na jego biblioteki odbić w Deencapsultation.class. Właściwie uwielbiam styl Mockito, ale odmawiam zmiany kodu i zamulenia interfejsu API, aby uzyskać dostęp do ograniczonego środowiska testowego. Jestem fanem testowania całego mojego kodu, więc framework, który nie może łatwo przetestować prywatnych metod, nie jest tym, czego chcę.
Poruszył mnie ten artykuł
Po (wprawdzie dużej) krzywej uczenia się, jMockit jest teraz moim głównym frameworkiem do testowania jednostek dla prób.
źródło
JMockit okazał się nieoceniony dla łatwego testowania naszej starszej bazy kodu (z wieloma wywołaniami metod statycznych itp.). [Bezwstydna wtyczka do artykułu na moim blogu]
źródło
Osobiście wolę EasyMock .
Moją ulubioną funkcją jest możliwość przełączania się między przyjemnymi, normalnymi i surowymi kontrolkami kpiny.
źródło