Aktywne Wpisy
kropla_bez_kitu_benc +129
Oczywiście wszyscy przejmują się kobietą. Los mężczyzny mają w poważaniu, nikt nawet o nim nie wspomina xD Tragiczny jest ten świat.
#izrael #wojna #palestyna #pieklomezczyzn
#izrael #wojna #palestyna #pieklomezczyzn
marcelus +13
classA
foo(){
Object x = new Object()
x.setSomething(...)
Jest jakiś pattern, żeby w unit testach sprawdzić poprawność wywołania takiej metody setSomething() z odpowiednimi wartościami?
Myślałem, żeby po prostu sprawdzić te argumenty z wykorzystaniem ArgumentCaptor, ale nie wiem w jaki sposób miałbym uchwycić taki obiekt. Nie jest on componentem, nie jest obiektem wsadowym, ani nie jest zwracany. Mówiąc wprost, w jaki sposób mam testować jednostkowo wywoływanie funkcji obiektów pomocniczych?
A teraz na przykładzie.
https://stackoverflow.com/questions/73808058/how-to-test-template-engine-while-styling-emails-with-junit-and-mockito-spring
Natrafiłem ten problem w dokładnie w tej samej klasie. Chodzi o obiekt MimeMessageHelper, który jest jakimś wrapperem MimeMessage z rozszerzonym interfejsem. Pisząc testy z automatu machnąłem mocka Mimemessage zwracanego z JavaMailSendera. Problem rozwiązałem sugerując się właśnie tym wątkiem tworząc obiekt Mimemessage, gdzie sprawdzam jego wartości grzebiąc w jego tablicach, ale co jeśli w przyszłości chciałbym przetestować czy jakieś funkcje w obiekcie pomocniczym się wywołują? W tym przypadku było to tylko ustawienie wartości kilku zmiennych, a nie dajmy na to jakiś invoke metody void, co normalnie bym testował na mocku metodą verify.
#java #programowanie #naukaprogramowania #programista15k
Komentarz usunięty przez autora
Komentarz usunięty przez autora
@mojemirabelki: Pod warunkiem, że tego skonfigurowanego właśnie serwisu używa ten sam obiekt, który konfigurował. Inaczej musisz testować side-effect.
W tym przypadku to widocznie moja nieuwaga, bo nie powinienem mockować takiego obiektu, a raczej sprawdzać czy taki wrapper go odpowiednio skonfigurował, co koniec końców