Jak napisać test dla poniższego kodu?

0

Witam,

Jak napisać test poniższego kodu JAVA:

public class InFileDatabase implements Database {

  @Override
  public void saveInvoice(Invoice invoice) throws IOException {

    JsonAdapter jsonAdapter = new JsonAdapter();
    ObjectMapper mapper = new ObjectMapper();
    String jsonInString = mapper.writeValueAsString(invoice);
    jsonAdapter.saveStringToFile(jsonInString);
  }

  @Override
  public List<Invoice> getInvoices() throws Exception {
    JsonAdapter jsonAdapter = new JsonAdapter();

    return jsonAdapter.readStringFromFile(new ObjectMapper(), new ArrayList<>());
  }
}

Jestem początkujący i z góry dziękuję za wyrozumiałość.

Pozdrawiam

0

W takich przypadkach używa się właśnie mock'ów. Poczytaj o tym i użyj mockito.

1
  1. Wygeneruj jakieś przypadki testowe
  2. Wywołaj w teście porównanie czy wynik wyszedł taki jaki miał.
0

Przejdź na wyższy poziom - testuj czy to co zapisałeś po odczytaniu jest tym samym.

Dzięki temu:
a) możesz to łatwo zamokować
b) nie testujesz formatu tylko poprawność serializacji i deserializacji

No chyba że testujesz jakiś oficjalny i udokumentowany format, wtedy możesz jeszcze osobno testować deserializację - przez czytanie plików testowych z zasobów.

BTW, "get" nie jest odwrotnością do "save" w żadnej znanej mi strefie czasowej.

0

Dziękuję za odpowiedzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1