Mam dość złożoną funkcję java, którą chcę przetestować przy użyciu jUnit i używam Mockito do tego celu. Funkcja ta wygląda mniej więcej tak:Zmodyfikuj parametr wejściowy funkcji pustej i przeczytaj ją potem.
public void myFunction (Object parameter){
...
doStuff();
...
convert(input,output);
...
parameter.setInformationFrom(output);
}
Funkcja konwersji ustawia atrybuty wyjścia w zależności od wkładu i jest to funkcja typu void, chociaż parametr „wyjście” jest to, co jest wykorzystywane tak, jakby były to zwracane przez funkcjonować. Ta funkcja konwertowania jest tym, co chcę wykpić, ponieważ nie muszę polegać na danych wejściowych do testu, ale nie wiem, jak to zrobić, ponieważ nie znam się dobrze na Mockito.
Widziałem podstawowe przypadki jako when(something).thenReturn(somethingElse)
lub metodę doAnswer, którą rozumiem jest podobna do poprzedniej, ale można do niej dodać więcej logiki, ale nie sądzę, aby te przypadki były odpowiednie dla mojej sprawy, ponieważ moja funkcja nie ma instrukcji return.
A co chcesz makiety? Wyjście? – fge
Mockito na bok, czy wiesz, że pisanie 'parameter = output;' nie zmieni wartości zmiennej, którą przekazujesz do tej metody? –
@David Wallace, jeśli parametr jest "a", nazywam prawdziwą funkcję myFunction i parametr I print, a następnie parametr będzie na przykład "ab". Nie jest to dokładnie "parameter = output", właśnie napisałem, aby zrozumieć kod. Przepraszam za zamieszanie. – Juan