wtorek, lutego 11, 2014

Post trzeci - hackowanie Mockito to jest to! ;-)

Zauważyłem w pracy rzecz straszną i ciekawą zarazem.
W ostatnim tygodniu, a nawet miesiącu najbardziej ambitnym kawałkiem kodu jaki popełniłem jest kod związany z Unit Testem ;-)
Napisałem obsługę annotacji @InjectMocks tak jak powinna działać w przypadku kodu GWT i rzeczywiście działa :-)
Nie muszę przenosić do konstruktora tego co chcę zinjectować do obiektu, a jednak się mocki injectują :-)

Drugą rzeczą, którą udało mi się zrobić, acz nie wiem czy będę używał jest zrobienie czegoś takiego:


addBehavior(mockedObject,new Object() {
private int i = 0;
public int getInt() {
return i++;
}
public String getString() {
return "String"+getInt();
}
});

Chociaż szczerze tego getString() nie próbowałem i nie dam głowy, że zadziała ;-)

Idea jest taka, że mój mockedObject jak mu się zawoła getInt() to wywoła ten kod, który jest w przekazanym obiekcie :-) to samo dla getString().
Niby można to zrobić przez when(mock).thenReturn() albo thenAnswer() ale jest to drugie trochę bardziej zamotane.

Refleksje w Java'ie to jednak fajna sprawa ;-)

Chociaż nie, napisałem fajniejszy kod w tym miesiącu, kawałek który robi za strukturę danych do trzymania prób nieudanego logowania, który jest odporny na ataki ;-)


Podobne postybeta
Robimy krzywdę GWT ;-) czyli przekazujemy wartość z serwera do klienta, bez RPC ;-)
Androidujemy sobie ;-) ale tak niemrawo
Thread.stop() i "nieśmiertelne" wątki ;-)
clone() i Cloneable się mszczą ;-)
SleepAdvisor - komórka pomaga w wyspaniu się ;-)