Czy można powiedzieć w kodzie, czy dany obiekt jest makietą Mockito czy nie?Jak mogę sprawdzić, czy obiekt jest makietą Mockito?
Powodem, dla którego chciałbym to zrobić, jest zwrócenie innego komunikatu o błędzie, gdy jest on fałszywy. Zostanie to wykorzystane do zasugerowania innym programistom, że powinni użyć przygotowanej wcześniej sztuczki, która jest już ustawiona, aby odbierać połączenia w użyteczny sposób, zamiast tworzyć samego siebie.
W tej chwili najlepsze mam object.getClass().getName().contains("EnhancerByMockitoWithCGLIB")
, ale to czuje się hacky.
Po otrzymaniu odpowiedzi przyjrzałem się [źródłu dla MockUtil] (https://fisheye2.atlassian.com/browse/mockito/trunk/src/org/mockito/internal/util/MockUtil.java? r = 2020) i bezpośrednio pod prywatną metodą 'isMockitoMock' istnieje publiczna metoda' isMock', która wydaje się być użyta. Będę publikować na liście mailingowej Mockito, aby sprawdzić, czy dobrym pomysłem jest samodzielne wywoływanie metod z 'org.mockito.internal.util'. – mikej
Jedną z intencji pakietu 'org.mockito.internal.util' jest to, że zespół Mockito mógł zmienić coś w tym pakiecie, w nowszej wersji. Więc jeśli użyjesz tego pakietu, twoje testy mogłyby przerwać w przyszłości. Jednak jest bardzo mało prawdopodobne, abyśmy pozbyli się tej konkretnej metody, więc powiedziałbym, że jest ona dość bezpieczna w użyciu. –
@mikej: +1, jakoś tęskniłem za tym, dzięki! Usunąłem starą odpowiedź i zamiast tego przedstawiłem Twoją sugestię, aby lepiej się wyróżniało. Mam nadzieję, że nie masz nic przeciwko. –