Sposób na zamockowanie statycznej metody, lub obiektu tworzonego dopiero podczas flow testu

0

Hej, mam dość ciężki dla mnie problem. Otóż istnieje sobie test, który przebiega przez wiele metod podczas swojego flow. Fixowałem pewną rzecz, ale przez to rozwaliłem kilka testów z tego względu, że w którejś z kolei metodzie na stosie wywołań jest tworzony obiekt poprzez statyczną metodę z jakiejś utilowej klasy. O ile nie ma problemu z zamockowaniem obiektów, które wchodzą do testowanej metody, bo setupuje sobie je przed testem (mockuje klasycznie z pomocą Mockito uzywając konstrukcji when/doReturn).
Normalnie użyłbym sobie PowerMocka i jakoś wymusił, żeby call tej jednej, psującej wszystko metody zwracał coś co mi naprawi testy. Niestety cała klasa testowa jest napisana z użyciem Junita 5, więc nie mogę za bardzo powermockować statycznych metod i klas.

Czy jesteście w stanie mi zaserwować jakieś wskazówki jak sobie poradzić w takiej sytuacji?

0

To Java. Refleksja i jedziesz ;) Od biedy można wywalić wywołanie do osobnej metody i nadpisać w teście. + Używanie Mockito starałbym się ograniczyć jeśli da się to zrobić inaczej.

0

Ogólnie, po przemyśleniu moje pytanie można skrócić do: czy da się - używając Junita 5 - zamockować metodę dla klasy, a nie dla konkretnej jej instancji? :)

1

Oczywiście - popraw jakość kodu i nie testuj metod statycznych.

0
Charles_Ray napisał(a):

Oczywiście - popraw jakość kodu i nie testuj metod statycznych.

Łatwo powiedzieć. To legacy, które strach tknąć. Ja dodałem tam tylko dodatkowe sprawdzenie pewnego warunku, ale wpłynęło to na testy. Niestety refaktor nie wchodzi w grę.

0

Przerób test na Junit4 i użyj powermocka - coś i tak będziesz musiał tutaj przepisać

2

Ja dodałem tam tylko dodatkowe sprawdzenie pewnego warunku, ale wpłynęło to na testy. Niestety refaktor nie wchodzi w grę.

To pogłębiaj dalej te patologie zamiast np. owrapować sobie tego statica w wywołanie normalnej metody.

0
Charles_Ray napisał(a):

Ja dodałem tam tylko dodatkowe sprawdzenie pewnego warunku, ale wpłynęło to na testy. Niestety refaktor nie wchodzi w grę.

To pogłębiaj dalej te patologie zamiast np. owrapować sobie tego statica w wywołanie normalnej metody.

Metoda, w której wywoływany jest ten static... też jest staticiem. Wywoływana jest natomiast w różnych miejscach, a jest niedziela, ja chcę nadrobić obsuwę z piątku - tak hobbystycznie - i nie wiem czy nie byłyby wieszane na mnie psy, gdybym robił tak brawurowe refaktory tuż przed releasem :(

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