Martin Grześlowski

Martin Grześlowski Student,
Politechnika
Wrocławska

Temat: Mockowanie File w Mockito.

...Ten post został edytowany przez Autora dnia 14.12.15 o godzinie 11:23
Piotr T.

Piotr T. Spring/Microservices

Temat: Mockowanie File w Mockito.

Martin Grześlowski:
Dokładniej chodzi mi o to że mój jeden obiekt ma taki o to konstruktor: public MyObject(File file) {...} i jakiego mocka mam mu przekazać (jak go stworzyć) Z góry dzięki za pomoc. Pozdrawiam Martin Grześlowski.
http://mockito.googlecode.com/svn/tags/1.8.0/javadoc/o...
więc :

File file = mock(File.class);
MyObject object = new MyObject(file);
Martin Grześlowski

Martin Grześlowski Student,
Politechnika
Wrocławska

Temat: Mockowanie File w Mockito.

..Ten post został edytowany przez Autora dnia 14.12.15 o godzinie 11:23
Tomasz D

Tomasz D Programista
Java/JEE, freelancer

Temat: Mockowanie File w Mockito.

Jak masz zamockowany obiekt to możesz użyć poniższego schematu:



when(yourMockObject.methodYouWantToCall()))
.thenReturn(valueYouWantToBeReturned);


czyli np.


File file = mock(File.class);
when(file.getName()).thenReturn("AlaMaKota.txt");
Tomasz Dziurko edytował(a) ten post dnia 04.04.11 o godzinie 09:47
Martin Grześlowski

Martin Grześlowski Student,
Politechnika
Wrocławska

Temat: Mockowanie File w Mockito.

...Ten post został edytowany przez Autora dnia 14.12.15 o godzinie 11:24
Tomasz D

Tomasz D Programista
Java/JEE, freelancer

Temat: Mockowanie File w Mockito.

Jak widać to nie działasz bezpośrednio na pliku tylko na Scannerze, który pewnie wewnątrz otwiera strumień z tego pliku i coś na nim robi. Dlatego wydaje mi się, że nie powinieneś mockować pliku tylko jakiś inny obiekt i metodę, która jest Ci potrzebna do testów, ale to trudno powiedzieć bez wiedzy jaki masz konkretny problem i co chcesz przetestować :)

konto usunięte

Temat: Mockowanie File w Mockito.

Martin Grześlowski:
Tak wiem ale chodzi mi o fizyczne zmockowanie zawartości pliku. Kod tego konstruktora wygląda podobnie do tego:
public MyObject(File file) {
Scanner sc = new Scaneer(file);
poleMyObject = sc.nextInt();
[...]
}
Martin Grześlowski edytował(a) ten post dnia 04.04.11 o godzinie 10:41

Masz dwie opcje :
1)Szybka - Powermockito i mockujesz finalny scanner poprzez zmianę kodu binarnego.

2)Poprawna : Wyrób sobie podejście, że jeśli nie możesz w łatwy sposób przetestować kodu to coś z tym kodem jest zjebane.

W twoim przypadku naruszasz granice pomiędzy twoim systemem a systemem plików. Stwórz komponent odpowiedzialny za kontakt z zewnętrznym systemem: Ja nazywam je "Connectorami".

ów komponent (np. FileSystemConnector) jest łatwy do mockowania a on sam z definicji nie może być testowany jednostkowo gdyż wchodzi w domenę innego systemu, także do niego tworzysz test integracyjny, który używa już prawdziwego pliku.

Mam nadzieję , że przedstawiłem to wystarczająco jasno.

W razie pytań pisz.
Martin Grześlowski

Martin Grześlowski Student,
Politechnika
Wrocławska

Temat: Mockowanie File w Mockito.

...Ten post został edytowany przez Autora dnia 14.12.15 o godzinie 11:24

konto usunięte

Temat: Mockowanie File w Mockito.

Martin Grześlowski:
Aha czyli już rozumiem. Klasa MyObject jest klasą jak ty to nazwałeś Connectorem (on przechowuje dane z pliku, niżej jest już Scanner i File) i nie niależy testować jej testami jednostkowymi tylko integracyjnymi

Dzięki :).

No nie do końca tak musi być. Nie podałeś jakiś jest zakres odpowiedzialności klasy MyObject. Z tego co widzę to przechowuje ona jakąś daną z pliku. W tym przypadku raczej albo ona powinna użyć connectora albo coś powinno ją zainicjalizować używając connectora (w zależności od podejścia).
pzdr
Martin Grześlowski

Martin Grześlowski Student,
Politechnika
Wrocławska

Temat: Mockowanie File w Mockito.

...Ten post został edytowany przez Autora dnia 14.12.15 o godzinie 11:24

konto usunięte

Temat: Mockowanie File w Mockito.

Martin Grześlowski:
Co by tu za dużo nie gadać o czymś co tylko ja widziałem wklejam kod tej klasy (usuwam ciała metod żeby nie zaśmiecać):
(...)
Moje pytanie dotyczyło dokładniej metody loadMap(File file).
I co wy na to?


No masz problemy z napisaniem testu jednostkowego bo projekt nie jest za dobry.

Żeby ci nie psuć zabawy z rozwiązania pracy domowej, masz tutaj tylko wskazówki:

http://en.wikipedia.org/wiki/Single_responsibility_pri...
http://www.mehdi-khalili.com/orm-anti-patterns-part-1-...
Martin Grześlowski

Martin Grześlowski Student,
Politechnika
Wrocławska

Temat: Mockowanie File w Mockito.

...Ten post został edytowany przez Autora dnia 14.12.15 o godzinie 11:24

Podobne tematy


Następna dyskusja:

mockowanie http




Wyślij zaproszenie do