• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

testy zapisu i odczytu json'a

Object Storage Arubacloud
+1 głos
265 wizyt
pytanie zadane 11 sierpnia 2021 w Java przez Lulex Użytkownik (820 p.)

Hej hej,

mam 2 metody - eksport listy różnych obiektów do pliku oraz ich odczyt i wrzucenie do listy:

 public static void exportToJson(List<Shape> list, String path) throws IOException {
        File file = new File(path);
        ObjectMapper mapper = new ObjectMapper();
        mapper.enableDefaultTyping();
        mapper.writeValue(new File(file.getName()), list);
    }
public static List<Shape> importFromJson(String path) throws IOException {
        File file = new File(path);
        ObjectMapper mapper = new ObjectMapper();
        mapper.enableDefaultTyping();
        return mapper.readValue(file, ArrayList.class);
    }

 

Chcę napisać do tego testy. Wyczytałem, że należy użyć, aby pliki po teście były kasowane

@Rule
    public TemporaryFolder temporaryFolder = new TemporaryFolder();

i zrobiłem coś takiego 

expectedFile = mock(File.class);
        when(expectedFile.getName()).thenReturn("file.json");
        temporaryFolder.newFile(expectedFile.getName());

Jednak co dalej powinienem zrobić, bo nie wiem jak dodać treść do tego pliku? Nie wiem czy w ogóle idę w dobrym kierunku. Generalnie zamysł mam taki, że do testowania eksportu porównam sobie plik który utworzy ta metoda z expectedResult, jednak jak zamockować treść expectedResult?

komentarz 12 sierpnia 2021 przez edutomek Dyskutant (8,380 p.)

Dwie luźne uwagi, tak z punktu widzenia nie-Javowca, gorącego zwolennika automatycznego testowania: rzecz jasna można testować operacje we/wy, pytanie tylko, czy jest to konieczne?

Zawartość samej listy (obiektu w pamięci), jak rozumiem, można łatwo zweryfikować. Zapis tej listy do pliku można rozbić na dwa etapy: (1) konwersja listy na napis, (2) zapis napisu do pliku. W drugą stronę analogicznie, tylko kolejność odwrotna.

W Javie już dawno nie pisałem, ale jestem gotów się założyć, że zapis napisu do pliku jest dostępny jako standardowa funkcja. Nie ma sensu tego testować. Można, co najwyżej, sprawdzić, czy Twoja funkcja wywołuje odpowiednie metody, w odpowiedni sposób (tutaj użyć mocków/stubów).

Odnośnie konwersji listy na napis, to pewnie też jest w standardzie, albo w jakiejś bibliotece - więc postąpiłbym analogicznie. No, chyba że sam to napisałeś - wtedy trzeba to przetestować.

komentarz 12 sierpnia 2021 przez Lulex Użytkownik (820 p.)
W sumie... to słuszna uwaga. Chciałem testować wbudowaną funkcję write i readValue.

Dzięki, zapędziłem się i chciałem testować wszystko po kolei... :D

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 269 wizyt
pytanie zadane 29 sierpnia 2021 w Java przez Lulex Użytkownik (820 p.)
0 głosów
1 odpowiedź 282 wizyt
pytanie zadane 17 kwietnia 2021 w Java przez Lulex Użytkownik (820 p.)
0 głosów
1 odpowiedź 402 wizyt
pytanie zadane 18 lipca 2021 w Java przez Lulex Użytkownik (820 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...