Jak napisać test dla poniższego kodu?

Jak napisać test dla poniższego kodu?
OR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam,

Jak napisać test poniższego kodu JAVA:

Kopiuj
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

ekhart
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: ekhart.pl
  • Postów: 140
0

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

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1
  1. Wygeneruj jakieś przypadki testowe
  2. Wywołaj w teście porównanie czy wynik wyszedł taki jaki miał.
vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
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.

OR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Dziękuję za odpowiedzi.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.