Możliwe problemy z testami:

- pole 'sold' (zakładając, że jest typu 'Boolean', nie 'boolean') jest null - w maperze ustaw domyślną wartość na false, pseudokod:

```

  if (dto.getSold() == null) entity.setSold(false)

```

- pole 'sold' (zakładając, że jest typu 'Boolean', nie 'boolean') jest null - sprawdź w InitIntegrationTestDate, czy metoda za zapis do bazy ustawia poprawnie wartość

- pole 'sold' ma niewłaścią wartość - sprawdź w InitIntegrationTestDate, czy metoda za zapis do bazy ustawia poprawnie wartość- po uruchomieniu wszystkich testów (najlepiej pod koniec poprawek) mogą w testach już napisanych pojawić się błędy NullPointerException, rozwiązaniem może być:

```

  Objects.isNull(obiektKtóryMozeByćNull) ? null : kodKtóryCośRobi()

```

 

- problem z odnalezieniem tabelki 'property_rooms', należy dodać do "application.property" - UWAGA: ten plik występuje w dwóch miejscach, chodzi o ten w "test/resources":

```

   spring.jpa.hibernate.ddl-auto=create

```

 

Dodając nowy pokój do bazy danych, metoda initDatabaseByRoom w InitIntegrationTestDate, możesz zwrócić Id pokoju po zapisie do bazy danych.Następnie pobrać pokój z bazy danych, na podstawie id, przygotować kolekcję Dto (List) z pokojem (może być jeden, lub kilka) i przypisać do nieruchomości (Dto), na koniec wykorzystać updateProperty(propertyDto).

 

Może zajść potrzeba dostarczenie Encji Rooms, podczas przekształcania propertyDto:

- pobranie rooms z bazy danych, na podastawie Id

- dodanie rooms do propertyEntity podczas "przepisywania pól" z propertyDto

 

HINT: przy setSoldProperty brakuje adnotacji: @Modifying(clearAutomatically = true) - ale po dopisaniu testu aktualizującego nieruchomość, że zostały sprzedane, sprawdź jak te testy się zachowają

 

HINT: shouldRemovePropertyFromDatabase - już nie jest potrzebny, skoro nieruchomość będzie ustawiana jako sprzedana - można skasować

27 Epik- Dostępne nieruchomości - IX

02 marca 2024

Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online

Strona www stworzona w kreatorze WebWave.