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ć
Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online
Strona www stworzona w kreatorze WebWave.